#Javascript

JavaScript里面向对象的继承:构造函数"继承"的六种方法

//现在有一个"动物"对象的构造函数。functionAnimal(){this.species="动物";}//还有一个"猫"对象的构造函数。functionCat(name,color){this.name=name;this.color=color;}  怎样才能使"猫"继承"动物"呢?一、构造函数绑定(通过ca...

JavaScript面向对象总结

  对象(Object)应该算是js中最为重要的部分,也是js中非常难懂晦涩的一部分。更是面试以及框架设计中各出没。本文章,主要参考JavaScript红宝书(JavaScript高级程序设计第六章)以及各大博主博客  毕竟是面向对象编程,我们在讨论如何面向对象之前先讨论讨论对象具有哪些属性和特性。属性类型  简单的说...

深入理解JavaScript中的函数操作——《JavaScript忍者秘籍》总结

  对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于JavaScript而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是:创建一个供以后使用的函数。简单的举个例子如下:window.onload=function(){alert('hello');}vartemplateObj=...

JavaScript数字精度丢失问题总结

  本文分为三个部分:1、JS数字精度丢失的一些典型问题(前端遇小数计算概率大,要有这个精度丢失的意识)2、JS数字精度丢失的原因(计算机用二进制存储数据,由于存储位置的限制有时会存在“舍去”。当模仿十进制进行四舍五入时,0舍1入,造成误差)3、解决方案(一个对象+一个函数)(解决方案:把小数乘...

奇特的JavaScript连续赋值运算

一、引子:vara={n:1};a.x=a={n:2};alert(a.x);//-->undefined  以上第二句a.x=a={n:2}是一个连续赋值表达式。这个连续赋值表达式在引擎内部究竟发生了什么?是如何解释的?二、猜想  猜想1:从左到右赋值,a.x先赋值为{n:2},但随后a赋值为{n:2},即a被...

10道典型的JavaScript面试题

问题1:作用域(Scope)  考虑以下代码:(function(){vara=b=5;})();console.log(b);  上述代码会打印出5。这个问题的陷阱就是,在立即执行函数表达式(IIFE)中,有两个赋值,但是其中变量a使用关键词var来声明。这就意味着a是这个函数的局部变量。与此相反,b被分配给了全局作...
代码星球 ·2020-06-27

用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)

  如今HTML5移动应用或Webapp中越来越普遍的使用了离线浏览技术,所以用JavaScript检测浏览器在线/离线状态非常常见。  无论浏览器是否在线,navigator.onLine属性都会提供一个布尔值。如果浏览器在线,则设置为true,否则设置为false。if(navigator.onLine){//tr...

JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别

  ECMAScript将对象的属性分为两种:数据属性和访问器属性。每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过for-in循环返回属性,也可以理解为:是否可枚举。然后根据具体的上下文环境的不同,我们又可以将属性分为:原型属性和实例属性。原型属性是定义在对象的原型...

JavaScript 中的不可变对象(Immutable Objects)

  默认情况下,JavaScript中的对象是可变的。我们可以更改原始值(字符串,数字等)和对象。我们来看看这个对象:letobj={num:10,obj:{content:"mutableobject"}}  你可以轻松地改变它:obj.num=5;obj.obj={content:"changed!"}consol...

深入理解JavaScript模拟私有成员

  一般的面向对象语言C++或JAVA,对象都是有私有成员的。js中没有类的改变,同样也没有对象的私有成员这个概念。但是可以通过某些特殊写法,模拟出私有成员。1、特权模式:  (1)在构造函数内部声明的变量、子函数以及参数,全部都是函数私有的,可以看作私有成员。给this指针添加的闭包,全部都是公有成员。  所以下面例...

高性能WEB开发:Javascript自身执行效率

  Javascript中的作用域链、闭包、原型继承、eval等特性,在提供各种神奇功能的同时也带来了各种效率问题,用之不慎就会导致执行效率低下。1、全局导入  我们在编码过程中多多少少会使用到一些全局变量(window、document、自定义全局变量等等),了解javascript作用域链的人都知道,在局部作用域中...

JavaScript性能优化小知识总结

  一直在学习javascript,也有看过《犀利开发Jquery内核详解与实践》,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己不擅于思考懒得思考以至于里面说的一些精髓都没有太深入的理解。鉴于想让自己有一个提升,进入一个更加广阔的天地,总得找一个属于自己的居所好...

JavaScript逻辑and、or、not运算符详解

一、AND详解:  在JavaScript中,逻辑AND运算符用双和号(&&)表示。  需要说明的是:逻辑AND运算的运算数可以是任何类型的,不止是Boolean值,如果某个运算数不是原始的Boolean型值,逻辑AND运算并不一定返回Boolean值。  逻辑AND运算符的运算行为如下:如果一个运算数...

JavaScript判断数据类型总结

  最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧!一、JS中的数据类型   1.数值型(Number):包括整数、浮点数。  2.布尔型(Boolean)  3.字符串型(String)  4.对象(Object)  5...

JavaScript事件代理和事件委托

一、概述:  那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。那这是什么意思呢?网上的各位大牛们讲事件委托基本上都用了同一个例子,就是取快递来解释这个现象,我仔细揣摩了一下,这个例子还真是恰当,我就不去想...
首页上一页...5556575859...下一页尾页