airbnb入门(一)

Type

  1. 初始化变量,需要明确值

References

const

  1. 当变量没有改变引用(reassign)时,优先使用const
// const 和 let 的小案例
for (const key in obj) {} //注意这里每次循环,是重新声明(redefined)不是重新分配(reassign),所以使用const
for (let i = 10;i<12;i++) //i只在最开始的声明一次,之后每次都是重新分配值,所用使用let
  1. 报错条件,当有变量没有改变引用类型,但是没有用const声明,会报错prefer-const
  2. 可修改配置文件,该类型错误较易触发。

let

  1. 声明块级变量,优先使用let变量。使用var,会报错,no-var

const和let

  1. 两者都是块级作用域,当在块级之外使用,会报错ReferenceError

Object

  1. Object对象的创建使用字面量,而不推荐使用Object构造函数创建。会报错,no-new-object
  2. 暂定。使用可控制的构建属性名称的方法,构建属性名称。
  3. 方法需要简写。会报错,object-shorthand
  4. 属性名和属性变量名相同,简写。会报错,object-shorthand
  5. 先简写属性,再普通属性,再方法。
  6. 只在必要的情况下,为属性名添加引号。"data-ha"。否则,报错,quote-props
  7. 以下方法,使用const声明的静态变量充当中转站
  • hasOwnProperty
  • propertyIsEnumerable
  • isPrototypeOf

扩展对象

  1. 在扩展对象的时候,不推荐使用ES6中新增方法,Object.assign()
  2. Object.assign()用法,第一个参数是target,第2到第N个参数为source。
  3. Object.assign()作用,将后边对象的属性值复制给第一个对象,产生一个新的对象。如果属性是引用类型,那么两者公用一个属性。
  4. 对象深度复制的办法,使用JSON.stringfy()JSON.parse()
  5. 在扩展对象的时候,推荐使用ES6中扩展运算符...,其所用与apply相似。将数组转变成参数序列。ES2017 将这个运算符引入了对象

Arrays

  1. 创建数组建议使用,字面量。会报错,no-array-constructor
  2. 添加数组元素,使用push方法,少使用arr.length方法添加
  3. 复制数组(不是简单的赋值,赋值的结果是两个变量存储同一个),使用扩展运算符,那么复制产生的元素和原数组不相互干扰。
  4. 类数组转化成数组,Array.from(like-array)
  5. 在数组的回调函数中,大部分情况下需要返回一个值,判断语句也需要一定的改写。会报错,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)工具,主要作用避免低级错误和统一代码风格

  1. 使用方式
  • 全局安装,使用命令检查某个项目下的文件
  • 局部安装,配合编辑器的插件使用

你可能感兴趣的:(airbnb入门(一))