let 取代 varjava
let 和 const 之間優先使用 const 數組
字符串
靜態字符串一概使用單引號或反引號,不使用雙引號 動態字符串使用反引號 ``
解構賦值
使用數組成員對變量賦值時,優先使用解構賦值
函數的參數若是是對象的成員,優先使用解構賦值
若是函數返回多個值,優先使用對象的解構賦值,而不是數組的解構賦值,這樣便於之後添加返回值,以及更改返回值的順序
對象
單行定義的對象最後一行不以逗號結尾,多行定義的對象,最後一個成員以逗號結尾
對象儘可能靜態化,一旦定義就不得隨意添加新的屬性.若是添加屬性不可避免,要使用Object.assign() 方法
若是對象的屬性名是動態的,能夠在創造對象的時候使用屬性表達式定義
對象的屬性和方法儘可能採用簡潔表達法這樣亦與描述和書寫
數組
使用擴展運算符(...)來複制數組
函數
當即執行的函數能夠寫成箭頭函數
那些須要使用函數表達式的場合,儘可能用箭頭函數代替由於這樣更簡潔,並且綁定了this
箭頭函數取代Function.prototype.bind 不該再用 self/_this/that綁定this
全部配置項都應該集中在一個對象,放在最後一個參數,布爾值不能夠直接做爲參數
不要再函數體內使用arguments變量,使用rest運算符(...)代替 rest運算符能夠提供一個真正的數組
使用默認值語法設置函數參數的默認值
Map結構
Class
老是用Class取代prototype的操做,由於Class的寫法更簡潔,更易於理解
使用extends實現繼承,由於這樣更簡單,不存在破壞instanceof運算的危險
模塊
Module語法是javaScript模塊的標準寫法,要堅持使用這種語法
若是模塊只有一個輸出值,就使用export default ,模塊有多個輸出值,就不使用export default
不要同時使用export default與普通export
不要再模塊輸入中使用通配符,由於這樣能夠確保模塊中有一個默認輸出
若是模塊默認輸出一個函數,函數名首字母應該小寫
若是模塊默認輸出一個對象,對象名首字母應該大寫函數