ES2015新特性速記:
- 新的變量名let,常量名const
- 類關(guān)鍵字class刊殉、extends求晶、super
- 模版字符串
\
hello ${name}` ` - 箭頭函數(shù)
()=>{}
- generator
function *foo()=>{...yield bar;}
- 函數(shù)參數(shù)默認值
(arg = defaultValue)=>{}
- 解構(gòu)
[a, b, c] = [1, 2, 3]
- 遍歷數(shù)組數(shù)據(jù) for...of
一崖蜜、語法
1.變量
盡量使用let和const代替var
- var:作用域自動提升到最近的function的花括號內(nèi)
- let:作用域限制在最近的花括號內(nèi)
2.原型鏈
- 給function添加屬性和方法時浊仆,需要new的對象共享的都通過prototype屬性添加,不需要共享的直接寫在function(構(gòu)造函數(shù))里豫领。
- 不同方法的含義
- 類方法:在構(gòu)造函數(shù)外部實現(xiàn)抡柿,調(diào)用方式類似C++靜態(tài)函數(shù)
- 對象方法:在構(gòu)造函數(shù)中實現(xiàn),只能new的對象調(diào)用等恐,類不能直接調(diào)用
- 原型方法:通過prototype實現(xiàn)洲劣,類通過prototype調(diào)用,對象直接調(diào)用
3.異步與回調(diào)
- 使用Promise以避免出現(xiàn)回調(diào)金字塔
4.循環(huán)
- 盡量不用for...in...語句遍歷數(shù)組元素课蔬,因為會將Array通過prototype增加的函數(shù)遍歷出來
- 注意 forEach囱稽,every,some 的應(yīng)用場合
5.generator生成器
- 跟python的類似二跋,有yield關(guān)鍵字和next()函數(shù)战惊,可暫停函數(shù)執(zhí)行
- next方法的參數(shù)表示上一個yield語句的返回值
- return方法可以終結(jié)遍歷generator函數(shù)
二、模塊
1.進程
- 用child_process進行阻塞操作扎即,使用process的on吞获、send傳遞消息
2.文件
- 小文件使用fs.readFile/fs.readFileSync,大文件使用fs.ReadStream
- 逐行讀取使用readline模塊
- 查詢狀態(tài)使用fs.stat/fs.statSync
3.通信
- 繼承或擴展EventEmitter完成自己的消息收發(fā)铺遂,使用emit發(fā)送衫哥,使用on接收