Javascript高级程序设计 笔记(一)
类型转换的区别
XXX.toString() & String(XXX) : 看使用方式知道,两个函数对于null,undefine的处理能力不同
parseInt() & parseFloat & Number() : 对于 4.5.6 分别输出 4 、4.5 、 NaN ; 主要是parseInt与Number()的区别,对于字符串是部分转换还是整体转换存在区别;对于parseInt与parseFloat的部分截取能力,应该要好好利用。
引用类型
原始值也有方法和属性:因为他们是伪类
一般很少使用Boolean类,而是使用Boolean原始值:var oFalseObject = new Boolean(false); var bResult = oFalseObject && true; 返回true, 应为在布尔表达式中,会将对象,看作true,(false的情况是空字串,0,null,undefine)
Number对象的一些方法:toFixed、toExponential、toPrecision分别用不同形式来表示数字:保留几位小数、以科学计数法表示、以几位有效值表示数字。
typeof & instanceof : typeof输出变量的类型,但是遇到对象,都返回"object"; instanceof 可以判断具体的对象,返回true or false。
运算符:
delete用法 : 好久没见到这个符号了,只在C++有用到,没想到javascript中也有,但是功能却似乎不同。C++中是释放空间,javascript是删除开发者定义的属性和方法的引用。什么叫开发者定义,举个例子:delete o.toString 将引发错误,因为toString不是开发者定义的,而是原始ECMAScript方法
void返回值:防止javascript返回值,不清楚怎么用的,先放着
在使用加法运算符的时候,一定要仔细检查运算数的数据类型:数字与数字相加,数字与字符串相加,是不同的行为
关系运算符:很特别,我只能这么说了。当数字与字符串比较时,会将字符串转换成数字;如果字符串不能转换成数字,根据规则,任何包含NaN的关系元算符都要返回false;当字符串与字符串比较时,比较的是字母;所以如果有人问你在javascript中,两个变量比较,小于运算是返回false,那么大于运算一定是true吗,当然不!
等于运算符:null与undefine相等;NaN与NaN不想等;对象和数字比较对象需要转换成数字;数字和字符比较,字符串需要转换成数字;对象和对象比较,比较的是应用,这和java中一样。
===运算符:不进行类型转化比较,也就是说要保持类型和值都需要相等