# 赋值
2.1 所有的赋值都用
const
,避免使用var
. eslint:prefer-const
(opens new window),no-const-assign
(opens new window)Why? 因为这个确保你不会改变你的初始值,重复引用会导致bug和代码难以理解
// bad var a = 1; var b = 2; // good const a = 1; const b = 2;
2.2 如果你一定要对参数重新赋值,那就用
let
,而不是var
. eslint:no-var
(opens new window)Why? 因为
let
是块级作用域,而var
是函数级作用域// bad var count = 1; if (true) { count += 1; } // good, use the let. let count = 1; if (true) { count += 1; }
2.3 注意:
let
、const
都是块级作用域// const 和 let 都只存在于它定义的那个块级作用域 { let a = 1; const b = 1; } console.log(a); // ReferenceError console.log(b); // ReferenceError