ECMAScript 6 笔记(28)- 编程风格

原创 乘风逐月 随笔 ES6 174阅读 2019-02-18 15:19:47 举报

一、块级作用域

1.let 取代 var

ES6 提出了两个新的声明变量的命令:let 和 const 。let 完全可以取代 var,因为两者的语义相同,而且 let 没有副作用。
let 命令只在其声明的代码块内有效,且不存在变量提升。

2.全局常量

在 let 和 const 之间,建议优先使用 const,尤其是在全局环境,不应该设置变量,只应设置常量。
const 优于 let 的原因:
a. const 可以提醒阅读程序的人,这个变量不应该改变。
b. const 比较符合函数式编程,运算不改变值,只是新建值,而且有利于将来的分布式运算。
c. JavaScript 编译器会对 const 进行优化,多使用 const 有利于提高程序的运行效率。(即,let 和 const 的本质区别是编译器的内部处理不同)。

二、字符串

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

三、解构赋值

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

四、对象

a. 单行定义的对象,最后一个对象不以逗号结尾。多行定义的对象,最后一个成员以逗号结尾。

b. 对象尽量静态化,一旦定义,就不得随意添加新的属性。如果添加属性不可避免,要使用 object.assign 方法。
c. 如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义。

d. 对象的属性和方法,尽量采用简洁表达法,这样易于描述和书写。

五、数组

a. 使用扩展运算符(...)拷贝数组。

b. 使用 Array.from 方法,将类似数组的对象转为数组。

六、函数

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

b. 需要函数表达式的场合,尽量使用箭头函数代替,这样更简洁,且绑定了 this。
d. 简单的、单行的、不会复用的函数建议使用箭头函数。多行的、函数体复杂的还是应该采用传统的函数写法。
e. 不在函数体内使用 arguments 变量,使用 rest 运算符(...) 代替,因为 rest 运算符显示表明想要获取参数。而且 arguments 是一个类数组对象,而 rest 运算符可以提供一个真正的数组。

七、Map 结构

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

八、class

a. 使用 Class,取代需要 prototype 的操作,因为 class 的写法简洁,易于理解。
b. 使用 extends 实现继承,这样更简单,不会有破坏 instanceof 运算的危险。

九、模块

a. 如果模块只有一个输出值,就使用 export default,如果模块有多个输出值,就不使用。export default 与普通的 export 不要同时使用。
b. 不在模块输入中使用通配符,这样可以确保模块之中,有一个默认输出。
c. 如果模块默认输出一个函数,函数名的首字母应该小写。
e. 如果模块默认输出一个对象,对象名的首字母应该大写。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复