Node.js与ES6速记
2016-07-01 本文已影响62人
stevenjobs
ES2015新特性速记:
- 新的变量名let,常量名const
- 类关键字class、extends、super
- 模版字符串
\
hello ${name}` ` - 箭头函数
()=>{}
- generator
function *foo()=>{...yield bar;}
- 函数参数默认值
(arg = defaultValue)=>{}
- 解构
[a, b, c] = [1, 2, 3]
- 遍历数组数据 for...of
一、语法
1.变量
尽量使用let和const代替var
- var:作用域自动提升到最近的function的花括号内
- let:作用域限制在最近的花括号内
2.原型链
- 给function添加属性和方法时,需要new的对象共享的都通过prototype属性添加,不需要共享的直接写在function(构造函数)里。
- 不同方法的含义
- 类方法:在构造函数外部实现,调用方式类似C++静态函数
- 对象方法:在构造函数中实现,只能new的对象调用,类不能直接调用
- 原型方法:通过prototype实现,类通过prototype调用,对象直接调用
3.异步与回调
- 使用Promise以避免出现回调金字塔
4.循环
- 尽量不用for...in...语句遍历数组元素,因为会将Array通过prototype增加的函数遍历出来
- 注意 forEach,every,some 的应用场合
5.generator生成器
- 跟python的类似,有yield关键字和next()函数,可暂停函数执行
- next方法的参数表示上一个yield语句的返回值
- return方法可以终结遍历generator函数
二、模块
1.进程
- 用child_process进行阻塞操作,使用process的on、send传递消息
2.文件
- 小文件使用fs.readFile/fs.readFileSync,大文件使用fs.ReadStream
- 逐行读取使用readline模块
- 查询状态使用fs.stat/fs.statSync
3.通信
- 继承或扩展EventEmitter完成自己的消息收发,使用emit发送,使用on接收