Type
- 初始化变量,需要明确值
References
const
- 当变量没有改变引用(reassign)时,优先使用const
// const 和 let 的小案例
for (const key in obj) {} //注意这里每次循环,是重新声明(redefined)不是重新分配(reassign),所以使用const
for (let i = 10;i<12;i++) //i只在最开始的声明一次,之后每次都是重新分配值,所用使用let
- 报错条件,当有变量没有改变引用类型,但是没有用const声明,会报错
prefer-const
。 - 可修改配置文件,该类型错误较易触发。
let
- 声明块级变量,优先使用let变量。使用var,会报错,
no-var
。
const和let
- 两者都是块级作用域,当在块级之外使用,会报错
ReferenceError
Object
- Object对象的创建使用字面量,而不推荐使用Object构造函数创建。会报错,
no-new-object
。 - 暂定。使用可控制的构建属性名称的方法,构建属性名称。
- 方法需要简写。会报错,
object-shorthand
。 - 属性名和属性变量名相同,简写。会报错,
object-shorthand
。 - 先简写属性,再普通属性,再方法。
- 只在必要的情况下,为属性名添加引号。
"data-ha"
。否则,报错,quote-props
。 - 以下方法,使用const声明的静态变量充当中转站
- hasOwnProperty
- propertyIsEnumerable
- isPrototypeOf
扩展对象
- 在扩展对象的时候,不推荐使用ES6中新增方法,
Object.assign()
。 -
Object.assign()
用法,第一个参数是target,第2到第N个参数为source。 -
Object.assign()
作用,将后边对象的属性值复制给第一个对象,产生一个新的对象。如果属性是引用类型,那么两者公用一个属性。 - 对象深度复制的办法,使用
JSON.stringfy()
和JSON.parse()
。 - 在扩展对象的时候,推荐使用ES6中扩展运算符
...
,其所用与apply相似。将数组转变成参数序列。ES2017 将这个运算符引入了对象
Arrays
- 创建数组建议使用,字面量。会报错,
no-array-constructor
。 - 添加数组元素,使用push方法,少使用
arr.length
方法添加 - 复制数组(不是简单的赋值,赋值的结果是两个变量存储同一个),使用扩展运算符,那么复制产生的元素和原数组不相互干扰。
- 类数组转化成数组,
Array.from(like-array)
。 - 在数组的回调函数中,大部分情况下需要返回一个值,判断语句也需要一定的改写。会报错,
array-callback-return
。
// 错误
var flag = arr.filter(function(x){
if (x) {
return x;
}else {
return false;
}
});
// 改写
var flag = arr.filter(function(x){
if (x) {
return x;
}
return false;
});
ESLint
ESLint是一个QA(Quality Assurance)工具,主要作用避免低级错误和统一代码风格
- 使用方式
- 全局安装,使用命令检查某个项目下的文件
- 局部安装,配合编辑器的插件使用