请避免全局变量、new、===、eval()
避免全局变量
请尽量少地使用全局变量。
它包括所有的数据类型、对象和函数。
全局变量和函数可被其他脚本覆盖。
请使用局部变量替代,并学习如何使用闭包。
始终声明局部变量
所有在函数中使用的变量应该被声明为局部变量。
局部变量必须通过 var 关键词来声明,否则它们将变成全局变量。
严格模式不允许未声明的变量。
在顶部声明
一项好的编码习惯是把所有声明放在每段脚本或函数的顶部。
这么做的好处是:
获得更整洁的代码
提供了查找局部变量的好位置
更容易避免不需要的全局变量
减少不需要的重新声明的可能性
也可以用于循环变量:
// 在顶部声明
var i;
// 稍后使用
for (i = 0; i < 5; i++) {
默认地,JavaScript 会将所有声明移至顶部(JavaScript hoisting)。
初始化变量
在您声明变量时对其进行初始化是个好习惯。
这么做的好处是:
更整洁的代码
在单独的位置来初始化变量
避免未定义值
变量初始化使我们能够了解预期用途和预期的数据类型。
请不要声明数值、字符串或布尔对象
请始终将数值、字符串或布尔值视作原始值。而非对象。
如果把这些类型声明为对象,会拖慢执行速度,并产生讨厌的副作用:
或者甚至更糟: