做B\S项目已有一年多,自己是做后台出来的,对写js方面可能也沿用了以前的思路,想想毕竟也是OO语言嘛。然而,从上个项目吃的一些苦头,让我决心静下心来把js的书看看。这本《javascript语言精粹》是别人推荐给我的,之所以选择这本书,是因为我深知代码质量的重要性(想想自己以前写的代码,真想回去重写),代码写的越多,我就越想用更简洁的代码来实现功能,而这当然需要更深入的取理解一下js的设计模式和原理性的东西。很多人说js简单,是因为对这门语言不是很了解,也可以用它来工作,觉得就是一般的OO语言。其实js有自身的不一样的特性,比如闭包,原型,弱类型,动态对象等等。接下来,我就将自己在看这本书时觉得是比较重要的概念都做一下记录和梳理,希望自己能温故而知新,也希望能跟别人一起分享。
1、javascript只有一种数字类型,它在内部被表示为64位浮点数(它没有分离出整数,所以1和1.0是一样的);NaN是一个数值,它表示一个不能产生正常结果的运算结果,NaN不等于任何值,包括它自己;
2、js被当作假的情况,这在做if判断的时候非常有效,能让你的代码看起来非常简洁:false、null、undefined、空字符串""、数字0、数字NaN;这六种情况都会被js认为是false;
3、在用for...in语句来做循环的时候,要特别注意,这会轮询所有的属性,包括原型链上的属性。可以使用object.hasOwnProperty()来确定属性是来自对象的成员还是来自于原型链;
4、javascript简单的数据类型包括:数字、字符串、布尔值、null、undefined,其他所有的都是对象。这里注意字符串不是对象,和其他OO语言有点差异;
5、javascript的函数有四种调用模式:方法调用模式、函数调用模式、构造器调用模式和apply调用模式;这些模式在如何初始化关键参数this上存在差异:
方法调用模式:函数被保存为对象的一个属性,我们称它为一个方法,当一个方法被调用时,this被绑定到该对象;
函数调用模式:函数并非一个对象的属性时,它被当作一个函数来调用,此模式,this被绑定到全局对象;
构造器调用模式:如果在一个函数前面带上new来调用,那么背地里会创建一个链接到该函数的prototype成员的新对象,同时,this会被绑定到新对象上;
apply调用模式:apply方法接受两个参数,第一个是要绑定给this的值,第二个就是一个参数数组;
6、当函数被调用时,会得到一个arguments(类似数组的对象),函数可以通过此参数访问所有它被调用时传递给它的参数列表;(因为js定义函数的时候,不指定参数,而调用的时候却传参,这是合法的。arguments就可以访问到所有传给函数的参数)
今天就先这样吧~~