前端编码规范

类型

基本类型

你可以直接获取到基本类型的值

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

对象

永远使用字面量创建对象

eslint