1.优先使用===,而不是==
JavaScript使用两种相等性操作符: ===|!==和==|!=.通常认为做比较的最佳实践是使用前一组操作符.
"若两个操作数的类型和值相同,那么===比较的结果为真,!==比较的结果为假." --JavaScript语言精粹
然而,如果使用==和!=,当比较不同类型的操作数时,你就会碰到问题啦.在这种情况下,这组操作符会尝试对操作数的值做无用的强制转换.
2.Eval就是糟糕的代名词
立即学习“Java免费学习笔记(深入)”;
对于那些不熟悉JavaScript的人来说,函数"evel"让我们能够访问JavaScript编译器,我们可以通过给"eval"传递一个字符串参数来得到该字符串执行的结果.
这不仅会极大地降低你的脚本的性能.也会造成一个巨大的安全隐患,因为这富裕传递进来的纯文本太多的能力,要尽可能地避免eval函数的使用.
3.不要懒手
奇数上来说,你确实可能侥幸地省略多数花括号和分号.大多数浏览器都能够正确的节水如下代码片段:
if(someVarianbleExists) x = false
然而再考虑一下这段代码:
if(someVariableExists) x=false anotherFunctionCall();
可能会有人认为上一段代码等价于:
if(someVariableExists){
x = false;
anotherFunctionCall();你应该也注意到了,代码中缩进模仿了花括号的功能,毋庸置疑,这是非常恐怖的做法,无论如何都应该避免.唯一可以省略花括号的时候是在一行式的语句中,但即使这种情况,也是很有争议的.
if(2 + 2 ===4) return"nicely done";
始终要想着以后
如果以后的某个时候,你需要在这种if语句中增加更多的命令,那该怎么办呢?没法子,你就只能重写这款代码了.处理这个问题的底线是对于省略写法保持谨慎.
4.使用JS Lint
JSLint是Douglas Crockford 编写的一个调试器,简单地将你的脚本拷贝进去,它就会快速地刀面你的代码中任何明显的问题和错误.
"JSLint获取一份JavaScript源码,然后扫描代码。如果发现问题,就会返回一条信息描述这个问题以及这个问题在源码中的大致位置。问题虽然经常是语法错误,却不一定是。JSLint也会查看一些风格习惯以及结构问题。它并不证明你的代码是否正确,只是提供另外的一双眼睛来帮助发现问题。
在结束脚本代码的编写之前,对其执行一次JSLint,能够保证你不会反一些愚蠢的错误.
5.将脚本至于页面的底部
这条技巧在本系列前面的文章中也推荐过.因为它在此处也非常合适(As it's highly appropriate though),所以我将那段信息直接粘贴在这里.
记住--这条最佳实践的主要目标是近可能快速地为用户加载页面.当加载一个脚本时,浏览器直到整个脚本文件全部加载完毕才能继续.因此,用户必须等上更长的时间才能注意到任何的进度.
如果JS文件的目的仅仅是增加功能--例如.在点击某个按钮后--那么就将那些文件放在底部,body结束标签之前吧,这绝对是一个最佳实践.
更好的做法
And now you know my favorite kinds of corn.