Appearance
JavaScript代码规范
语言规范
JavaScript 是一种客户端脚本语言,以下编写 JavaScript 时需要遵守的规则。
类型引用
- 禁止使用引用 Var 定义变量 禁止代码中同时使用 Var 和 Let 防止暂时性死区
原因:这样做可以确保你无法重新分配引用,以避免出现错误和难以理解的代码 var 可以重复声明 导致代码 难以理解
js
// 可以重复定义变量
var foo = 'erkelost'
var foo = 'adny'
- const 和 let 都是块级作用域,
js
// const and let only exist in the blocks they are defined in.
{
let value = 'erkelost'
const online = 'adny'
}
console.log(value) // ReferenceError
console.log(online) // ReferenceError
- 定义变量 对所有引用都使用 const,不要使用 var,eslint: prefer-const, no-const-assign
js
// bad
var value = 'erkelost'
var online = 'adny'
// good
const value = 'erkelost'
const online = 'adny'
- 如果引用是可变动的,使用 let 代替 var,eslint: no-var
js
// bad
var count = 1
if (count < 10) {
count += 1
}
// good
let count = 1
if (count < 10) {
count += 1
}
- 那么我们如何定义变量
var 因为存在 作用于提升 window 全局对象添加属性 没有块级作用域等问题都是 历史遗留问题
实际开发中 我们禁止使用var 来定义变量
所以我们优先 使用const 保证数据安全性 不会被随意的修改 如果 后续我们发现了 这个变量可能会被修改 我们 可以再去修改为let
- 请使用字面量值创建对象,eslint: no-new-object
js
// bad
const a = new Object{}
// good
const a = {}
函数
- 在创建函数的时候 我们最好建议使用剪头函数
js
[1,2,3].forEach(item => {})
它将创建在 this 上下文中执行的函数,并且语法更简洁, 不需要再去声明this 变量传递
比较运算符&相等
- 使用 === 和 !== 而非 == 和 !=
在判断两个变量或值是否相等时, 必须使用 “ === ” 全等