1. NaN !== NaN
NaN,表示一个非数字的值,然而问题是,NaN不等于任何东西,甚至不等于它自己。
- console.log(NaN === NaN); // false
这显然不对,事实上,如果要判断一个值确实是 NaN,你需要用 isNaN() 函数。
2. 莫名其妙的代码错误
我们看下面的代码:
- var foo = function() {
- return {
- a : 'b'
- };
- }();
- alert(foo.a); // b
如果我们把其中的
- return {
- a : 'b'
- };
换成
- return
- {
- a : 'b'
- };
就会引发错误,这是因为 JavaScript 有一个功能,会纠正它认为错误的代码书写,它会自作聪明地在 return 这个词后面插入一个 ";" ,错误因此而生。