ES6学习笔记(五)—— 编程风格

1. 块级作用域

  • let 取代 var —— let 只在声明的代码块内有效,而且不存在变量提升的效用
  • const 取代 let —— const 比较符合函数式编程的思想,运算不改变值,只是新建值;JS 编译器会对 const 进行优化,使用 const 有利于提高程序的运行效率
  • 所有的函数都应该设置成为常量
const [a, b, c] = [1, 2, 3]

2. 字符串
静态字符串使用单引号或者反引号,动态字符串使用反引号配合 ${ }

const a = 'Monica'
const b = `${a} is my good friend`

3. 解构赋值
使用数组成员对变量赋值时

cosnt [a, b] = [1, 2, 3, 4]

函数的参数是对象的成员

const getInfo = (info) => {
    const { name, age } = info
}
const getInfo = ({ name, age }) => {
    // ...
}

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

const a = { k1: v1, k2: v2 }
const b = {
    k1: v1,
    k2: v2,
}

对象尽量静态化,一旦定义,就不得随意添加新的属性。如果添加属性不可避免,要使用 Object.assign() 方法。

const info = {}
Object.assign(info, { name: 'wangxi' })

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

const userInfo = {
    name,
    gender: 'male',
    getAge () {
        return '25'
    },
}    

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

const a = [1, 2, 3, 4]
const b = [...a]

使用 Array.form() 将类数组对象转化为数组。

const infoObj = { name: 'wangxi', age: 25, length: 2 }
const infoArr = Array.from(infoObj)

6. 函数

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

(() => {
    console.log('I am the best')
})()

使用默认值语法设置函数参数的默认值。

const userInfo = (name = 'wangxi') => {
    // ...
}

7. Map 解构
只有模拟现实世界的实体对象时,才使用Object。如果只是需要key: value的数据结构,使用Map结构。

let map = new Map(arr)

Map 方法

  • map.keys()
  • map.values()
  • map.entries()

8. 模块
模块导入使用 import 代替 require
模块导出使用 export 代替 module.export。

如果模块只有一个输出值,就使用 export default,如果模块有多个输出值,就不使用 export default

如果模块默认输出一个函数,函数名的首字母应该小写。

const userInfo = () => {
    // ...
}
export userInfo

const UserInfo = {
    // ...
}
export default UserInfo

 

参考: http://es6.ruanyifeng.com/#docs/style

posted @ 2017-09-08 17:24  淳安梁朝伟  阅读(363)  评论(0编辑  收藏  举报