JavaScript 语言规则
变量
在 JavaScript 里一共有三种定义变量的方式:
当定义变量的时候,你应该使用上面列出的关键字来定义变量。优先考虑使用 const
定义你的变量,如果觉得以后需要对变量重新赋值的,则使用 let
。现在已经不推荐使用 var
关键字来定义变量了
分号
始终使用分号。
依靠隐式插入会造成难以排除的细微问题。分号应放在函数表达式的末尾,而不是函数声明的末尾。
不推荐:
var foo = function() {
return true // 缺少分号
} // 缺少分号
function foo() {
return true;
}; // 额外的分号
推荐:
var foo = function() {
return true;
};
function foo() {
return true;
}
基本类型包装对象
基本类型无需使用包装对象,此外,包装对象还具有潜在危险,但可以使用类型转换。
不推荐:
var x = new Boolean(0);
if (x) {
alert('hi'); // 如果 x 是一个真实对象,则显示 hi
}
推荐:
var x = Boolean(false);
if (x) {
alert('hi'); // 如果 x 是一个否定的布尔值,则显示 hi
}
闭包
进行该操作时要小心谨慎。
创建闭包的能力可能是 JavaScript 中最有用但最常被忽略的能力。需要记住的是,闭包会储存对其封闭范围的指示器,因此,将 DOM 元素与闭包相连会生成循环引用,从而导致内存的泄露。
不推荐:
function foo(element, a, b) {
element.onclick = function() { /* 使用 a 和 b */ }
}
推荐:
function foo(element, a, b) {
element.onclick = bar(a, b);
}
function bar(a, b) {
return function() { /* 使用 a 和 b */ }
}