持续更新……
运算符使用
使用 === 而不是 ==
避免隐式转换,详见JavaScript快速入门(五)——表达式运算。
内置函数使用
parseInt
parseInt是一个内置函数,可以将非数字(一般是字符串)转换为数字,开始转换时,从第一位开始,直到该位置不是数字为止。如果第一位就不是数字,返回NaN。
一般使用的时候,我们都是这么使用:
<pre name="code" class="javascript">var a = parseInt("123abc"); // 123
这没有什么问题,但有一种情况会出现意外,那就是前置字符是进制数的特殊表示的时候。八进制数字的前缀为0,而十六进制前缀为0x。 例如我们日期的表示一般是用2015.10.09这样来表示,但我们用parseInt("09")来转换的时候就会出问题,因为js会把它当成八进制数来转换,而八进制里是没有9这个数字的,所以会返回undefined,从而出现不可料的错误。
事实上,parseInt还有第二个参数,它表示转换所用的基数。所以,使用parseInt的时候,最好加上这个参数。例如:
var a = parseInt("09", 10); // 9
其他
防止自动插入分号
JavaScript可以不写分号,这是一个被人诟病了很久的问题,但实际上即使不写分号,解析的时候引擎还是会自动在一句话后面自动加上分号,这有可能会产生新的错误。例如:
var func = function() {
return
{
error: true
};
}
引擎会自动在return后面加上分号,因为到return为止这是一个完整的语句了。所以我们要把大括号放在return同一行。
var func = function() {
return {
error: true
};
}
这样由于对象还没结束,引擎不会把左大括号当做一句完整的语句,就不会在后面自动添加分号了。
【好像又涉及大括号圣战了