ES6-编程风格

学习了ES6这么久,但是一直对该如何将ES6的新语法运用到编程实践中,与传统js语法相结合,写出合理的、易于阅读和可维护的代码并不是十分清楚,因此在此记录总结。

块级作用域

let 代替 var

let 完全可以取代var,因为两者的语义相同,而且let没有副作用。

全局常量 和 线程安全
  • 在let 和 const之间,建议优先使用const,尤其在全局环境中,不应该设置变量,只应设置常量。const 优于 let 有以下几个原因:

    • const 可以提醒阅读该程序的人,这个变量不应该改变。
    • const比较符合函数式编程,运算不改变值,只是新建值,这样也有利于将来的分布式运算。
    • js编译器会对const进行优化,所以多使用const有利于提供程序的运行效率,也就是说let和const本质区别是编译器内部的处理不同。
  • 长远来看,js可能会有多线程的实现,这时let表示的变量只应出现在单线程运行的代码中,不能是多线程共享的,这样有利于保证线程安全。

字符串

静态字符串一律使用单引号或者反引号,不使用双引号。动态字符串使用反引号。

解构赋值

  • 使用数组成员对变量赋值时,优先使用解构赋值。
  • 函数的参数如果是对象的成员,优先使用解构赋值。
  • 如果函数返回多个值,优先使用对象的解构赋值,而不是数组的解构赋值。这样这样便于以后增加返回值或者更改返回值的顺序。

对象

  • 单行定义的对象,最后一个成员不以逗号结尾;多行定义的对象,最后一个成员以逗号结尾。
  • 对象尽量静态化,一旦定义,最好不要随意添加新的属,如果添加属性不可避免,要使用Object.assign方法。
  • 如果对象的属性名是动态的,可以在创建对象的时候使用属性表达式定义

数组

  • 使用扩展运算符(...) 复制数组。

  • 使用Array.form()方法将类似数组的对象转为数组

函数

  • 立即执行函数可以写成箭头函数的形式。

  • 那些需要使用函数表达式的场合,尽量用箭头函数代替,因为这样更简洁,而且绑定了this

  • 简单的、单行的、不会服用的函数,建议采用箭头函数。如果函数体较为复杂,行数较多,还是应该采用传统的函数写法。

  • 不要在函数体内使用arguments变量,使用rest运算符(...)。因为rest运算符可以显示表达我们想要获取参数,而且arguments是一个类似数组的对象,而rest运算符可以提供一个真正的数组。

Map结构

注意区分Object和Map,只有模拟实体对象时才使用Object,如果只是需要key:value的数组结构,则使用Map,因为Map有内建的遍历机制。

Class

总是使用Class取代需要Prototype的操作。因为Class的写法简洁,更易于理解。

模块

Module语法是javascript模块的标准写法,要坚持使用这种写法。

  • 使用import取代require
  • 使用export取代module.exports
  • 如果模块只有一个输出值,就使用export default;如果模块有多个输出值,就不使用export default,不要同时使用export default与普通的export
  • 不要在模块中使用通配符。因为这样可以确保模块中有一个默认输出
  • 如果模块默认输出一个函数,函数名的首字母应该小写
  • 如果模块默认输出一个对象,对象名的首字符应该大写

ESLint的使用

ESLint是一个语法规则和代码风格的检查工具,可用于保证写出语法正确,风格统一的代码。

转载于:https://juejin.im/post/5cd4e70c51882535c3542929

你可能感兴趣的:(javascript,ViewUI)