JavaScript 语言规则

变量

在 JavaScript 里一共有三种定义变量的方式:

当定义变量的时候,你应该使用上面列出的关键字来定义变量。优先考虑使用 const 定义你的变量,如果觉得以后需要对变量重新赋值的,则使用 let。现在已经不推荐使用 var 关键字来定义变量了

分号

始终使用分号。

依靠隐式插入会造成难以排除的细微问题。分号应放在函数表达式的末尾,而不是函数声明的末尾。

不推荐:

  1. var foo = function() {
  2. return true // 缺少分号
  3. } // 缺少分号
  1. function foo() {
  2. return true;
  3. }; // 额外的分号

推荐:

  1. var foo = function() {
  2. return true;
  3. };
  1. function foo() {
  2. return true;
  3. }

基本类型包装对象

基本类型无需使用包装对象,此外,包装对象还具有潜在危险,但可以使用类型转换。

不推荐:

  1. var x = new Boolean(0);
  2. if (x) {
  3. alert('hi'); // 如果 x 是一个真实对象,则显示 hi
  4. }

推荐:

  1. var x = Boolean(false);
  2. if (x) {
  3. alert('hi'); // 如果 x 是一个否定的布尔值,则显示 hi
  4. }

闭包

进行该操作时要小心谨慎。
创建闭包的能力可能是 JavaScript 中最有用但最常被忽略的能力。需要记住的是,闭包会储存对其封闭范围的指示器,因此,将 DOM 元素与闭包相连会生成循环引用,从而导致内存的泄露。

不推荐:

  1. function foo(element, a, b) {
  2. element.onclick = function() { /* 使用 a 和 b */ }
  3. }

推荐:

  1. function foo(element, a, b) {
  2. element.onclick = bar(a, b);
  3. }
  1. function bar(a, b) {
  2. return function() { /* 使用 a 和 b */ }
  3. }