JS一些需要注意的知识点
1.对象的属性名使用引号与不使用引号的区别
当我们在申明一个对象字面量的时候,经常看到对象的属性名有的有引号,有的没有,那时候我就是觉得非常困惑,它们之间的区别是:
1.1 当对象的属性名是合法的标识符且不是保留字时,是不需要使用引号的,当然使用也没有问题,只不过是多此一举而已。
var object = { first_name: ‘javascript‘, city: ‘shenzhen‘ }
1.2 当你的对象属性名包含不合法的标识符或是保留字的话,就必须使用引号。
var object = { ‘first-name‘: ‘javascript‘, //first-name: ‘javascript‘, 不合法包含- city: ‘shenzhen‘ }
2.对象的检索
大家都是知道,要检索对象里的包含值,有两种方式,一采用xxx[‘xxx‘],二采用.表示法。我不知道大家看到这两个检索方法,你有何看法,你知道其中的差异没有。
2.1 如果字符串表达式是一个字符串字面量,而且它是一个合法的javascript标识符且不是保留字,建议使用"."表示法代替,因为它更加紧凑且可读性更好。
var object = { first_name: ‘javascript‘, city: ‘shenzhen‘ } console.log(object.first_name); // ‘.‘表示法
2.2 当然xxx[‘xxx‘]也是有其优势的,例如检索的对象的属性名不是合法的或是保留字,它就是派上用场。
var object = { ‘first-name‘: ‘javascript‘, //first-name: ‘javascript‘, 不合法包含- city: ‘shenzhen‘ } onsole.log(object[‘first-name‘]) // javascript console.log(object.first-name) // NaN
2.3xxx[‘xxx‘]还有一个更重要的作用是,当它要检索的属性名是动态变化的(变量)时,必须使用xxx[‘xxx‘]这种方式。
for(var att in object){ console.log(object[att]); }
3.==,!= 和===,!==的差异
当使用==和!=时,会进行强制类型转换,其实这是很糟糕的做法,可能会掩盖因类型引发的错误,还会影响性能。当使用===和!==时,直接比较直,不会进行强制类型转换
4.parseInt()
parseInt有两个参数,第一个是要传入转换的字符串,第二个是要解析的数字的基数。建议使用parseInt时写第二个参数,因为有的浏览器对他的解释方式不同,有的默认十进制,有的根据第一个参数写法来决定。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。