前端编码规范
2010 年 4 月 17 日
类型
基本类型
你可以直接获取到基本类型的值
string number boolean null undefined symbol
const foo = 1; let bar = foo; bar = 9; console.log(foo, bar); // => 1, 9
注意
: Symbols
不能被完整的 polyfill
,所以,在不支持 Symbols 的环境下中,不应该使用 symbol
类型。
复杂类型
复杂类型赋值就是获取到他的引用的值,相当于引用传递
object array function
const foo = [1, 2]; const bar = foo; bar[0] = 9; console.log(foo[0], bar[0]); // => 9, 9
参考
永远都使用 const
为了确保你不会改变你的初始值,重复引用会导致一些不可预见的 bug
,还会让代码难以理解,所有的赋值都应该使用 const
,避免使用 var
。
eslint
// bad var a = 1; var b = 2; // good const a = 1; const b = 2;
可以使用 let
如果你一定要对参数重新赋值,那就使用 let
,而不是 var
, let
是块级作用域,而 ver
是函数级作用域。
eslint
// bad var count = 1; if (true) { count += 1; } // good let count = 1; if (true) { count += 1; }
注意 const
与 let
的块级作用域
const
与 let
声明的常量与变量都只存在于定义它们的那个块级作用域中。
{ let a = 1; const b = 1; } console.log(a); // ReferenceError console.log(b); // ReferenceError