摘要:本文总结了则的最佳实践,希望对各位爪哇国编剧有用。使用有两种等值运算符,分别是和,以及和。比较两个值的时候,请使用前者,避免讨厌的强制类型转换带来预料之外的结果。下只提供无强制类型转换的别名和别名,不用头疼选哪种。
本文总结了20则JavaScript的最佳实践,希望对各位爪哇国编剧有用。(顺带推销下CoffeeScript)
。
1. 使用 ===JavaScript有两种等值运算符,分别是===和==,以及!==和!=。比较两个值的时候,请使用前者,避免JavaScript讨厌的强制类型转换带来预料之外的结果。
CoffeeScript下只提供无强制类型转换的==(别名is)和!=(别名isnt),不用头疼选哪种。
2. eval很邪恶eval让我们将字符串作为参数执行,这是非常强大的特性。然而,eval会大幅降低脚本的性能,也会引起安全问题。除非你打算用JavaScript写一个编译器,还是对eval敬而远之的好。
3. 少打字多费脑省掉一些花括号,大多数浏览器仍然能理解,例如:
if(someVariableExists) x = false
然而,复杂一点的代码就可能带来问题:
if(someVariableExists) x = false anotherFunctionCall();
你想表达的也许是:
if(someVariableExists) { x = false; anotherFunctionCall(); }
然而实际上等价于:
if(someVariableExists) { x = false; } anotherFunctionCall();
所以,还是乖乖地写花括号吧,这能为你省去无数麻烦。
如果你真那么讨厌花括号,还是投入CoffeeScript的怀抱吧:
if someVariable? x = false if someVariable? x = false anotherFunctionCall()
同理,大多数浏览器允许你省略分号:
var someItem = "some string" function doSomething() { return "something" }
这和省略花括号一样糟糕,还是老实一点好:
var someItem = "some string"; function doSomething() { return "something"; }
或者,投奔CoffeeScript吧,不用分号了:
someItem = "some string" doSomething = -> "something"
函数的写法是不是也很帅?直接定义一个匿名函数,然后把它赋给一个变量即可。
4. 使用JSLintJSLint是一款非常棒的调试器,它会迅速找出代码中的问题,包括语法错误、编码风格和程序结构问题。
5. 将脚本放在页面的底部脚本加载是阻塞的,脚本加载并执行完之后,浏览器不能继续渲染下面的内容。因此,用户被迫等待更长时间。如果你的JavaScript脚本只是用来增强效果,那么请将它放在页面的最后:
And now you know my favorite kinds of corn.