JavaScript语言精粹自我总结
关于这部份的总结,主要是一些细节方面的掌握,提高 Javascript 的性能,锻炼自己的代码风格
对于注释最好是采用//来进行注释,块注释最好在函数开头使用
JavaScript 的数字都是 64 位浮点型,避免了短整型的溢出问题。
JavaScript 的字符是 16 位 Unicode
使用 for_in 语句的时候通常需要检测该属性是否是该对象成员,使用过滤器排除函数
obj.hasOwnProperty(x)
||
运算符可以用来填充默认值,跟冒号条件差不多对象是通过引用来传递,永远不会被复制,可以看做是一个项目给很多人做,每个人都有修改权
22-23 页有很好的原型继承和委托的解析,具体点击 这里
相较于 for_in 更常用 for,for_in 里属性名的出现顺序是不定的,关于 for 语句要自增语句要用 i+=1
使用 delete 删除对象的属性,该属性读取时会使用委托事件
减少全局变量污染,最常用的就是只创建一个唯一的全局变量——对象。通过属性名进行容器扩充。
函数的 this 指向问题,最好是定义一个变量并赋值为 this。当函数为对象方法时,this 指向对象。应该对函数的形参进行 typeof 等测试过滤。
.apply 方法,第一个参数为需要绑定的 this 值,第二个参数为参数数组。
函数本身附带着 this 和 arguments 两个参数。但由于设计原因,会出现 this 指向问题,而且,arguments 并不是一个真正的数组,只拥有 length 属性,没有其他方法。 如果要让 arguments 有数组方法,需要先定义变量赋值 Array.prototype.method,其中 method 是看具体的方法,然后调用 apply 方法赋值到一个新的数组。
可以使用闭包来模拟类,变量为私有属性,然后通过 return 来返回方法。
避免在循环中创建函数,可以在循环之外创建一个辅助函数,避免混淆
关于 JavaScript 的继承,可以使用构造器函数来形成伪类,但是存在一个严重的危害,详情看 49 页
函数如果需要传多个参数,可以采用对象传参,这样既可以按任何顺序排列,处理 json 数据也会方便。
JavaScript 可采用应用模块模式,即函数化模式进行继承。详情看 52 页。
数组本身是对象,可以使用 instanceof Array 来进行判断
使用 parseInt 方法时最好加上基数参数以免混淆
尽量不要使用 new 关键字。
jsLint 和 eslint 可以培养代码风格
随着 ES6 的出现以及越来越多的 ES 新特性,这个总结其实已经有些过时了,但是有些还是值得去借鉴的