Javascript 一些需要注意的细节一些需要注意的细节(必看篇必看篇)
1.使用使用 === 代替代替 ==
JavaScript 使用2种不同的等值运算符:===|!== 和 ==|!=,在比较操作中使用前者是最佳实践。
“如果两边的操作数具有相同的类型和值,===返回true,!==返回false。”——JavaScript:语言精粹
然而,当使用==和!=时,你可能会遇到类型不同的情况,这种情况下,操作数的类型会被强制转换成一样的再做比较,这可
能不是你想要的结果。
2.Eval == 邪恶邪恶
起初不太熟悉时,“eval”让我们能够访问JavaScript的编译器(译注:这看起来很强大)。从本质上讲,我们可以将字符串传递
给eval作为参数,而执行它。
这不仅大幅降低脚本的性能(译注:JIT编译器无法预知字符串内容,而无法预编译和优化),而且这也会带来巨大的安全风
险,因为这样付给要执行的文本太高的权限,避而远之。
3.省略未必省事省略未必省事
从技术上讲,你可以省略大多数花括号和分号。大多数浏览器都能正确理解下面的代码:
if(someVariableExists)
x = false
然后,如果像下面这样:
if(someVariableExists)
x = false
anotherFunctionCall();
有人可能会认为上面的代码等价于下面这样:
if(someVariableExists) {
x = false;
anotherFunctionCall();
}
不幸的是,这种理解是错误的。实际上的意思如下:
if(someVariableExists) {
x = false;
}
anotherFunctionCall();
你可能注意到了,上面的缩进容易给人花括号的假象。无可非议,这是一种可怕的实践,应不惜一切代价避免。仅有一种情况
下,即只有一行的时候,花括号是可以省略的,但这点是饱受争议的。
if(2 + 2 === 4) return 'nicely done';
未雨绸缪
很可能,有一天你需要在if语句块中添加更多的语句。这样的话,你必须重写这段代码。底线——省略是雷区。
4.将脚本放在页面的底部将脚本放在页面的底部
记住——首要目标是让页面尽可能快的呈献给用户,脚本的夹在是阻塞的,脚本加载并执行完之前,浏览器不能继续渲染下面
的内容。因此,用户将被迫等待更长时间。
如果你的js只是用来增强效果——例如,按钮的单击事件——马上将脚本放在body结束之前。这绝对是最佳实践。
5.避免在避免在For语句内声明变量语句内声明变量
当执行冗长的for语句时,要保持语句块的尽量简洁,例如:
糟糕:
for(var i = 0; i < someArray.length; i++) {