![](https://img.haomeiwen.com/i2498134/8eb72a25f68b2025.png)
其实我个人觉得新手不太应该追求彻底的学透每一个知识点。因为初学的时候,钻的太深并不太利于对JS有一个整体的理解。反而有可能钻牛角尖。但这种方法和心态却是必须有的。所以,有时也矛盾,自己掌握吧。
学透一个知识点的关键,我认为就是求甚解,“到底是为什么”?
在掌握全局的基础上,一定程度的求甚解,我认为是一种很好的学习方法。
例如,== 和 ===,到底有什么区别?什么时候该用双=或三=?
先说结论,一般情况下都应该使用===,因为这样就没有JS的自动转换了,效率会好些。但只有在检测 null 或是 undefined的时候,就可以使用 == 就可以了,因为它转换也是null 或 undefined。而且很多时候,是不怎么区别 null 和 undefined的。
双=,就是 == ,有时看着方便,if( a == b ),如果:
a的值是1;b的值是'1',这样比对的时候,a和b的值其实并不相等,但你 == 这样比较,就很可能造成直接转换了,使得比较结果相等。而这种BUG是很难查出来的。
另外还有一个问题,有时会这样设置变量:var a = b = c,也许人的直觉会认为a = c了,但其实不是这样的。这个句子,只是声明了一个局域变量a,另外 的b 和c ,其实是全局变量,如果这种情况下,你直接用 == 去比较,十有八九会有问题。
最后为了求甚解,看一个小例子:
1 == false // false
'1' == false // false
1 == '1' // true
1 === '1' // false
你该怎么理解呢?自己想想吧
网友评论
你好,我新建了一个“web前端学习群”。加我微信号:blazeloulan,拉你入群。加我时,请注明:“加群”,谢谢