1. 程式人生 > >es6學習之路

es6學習之路

建議不再使用var命令,而是使用let命令取代。
在let和const之間,建議優先使用const。
const靜態字串一律使用單引號或反引號,不使用雙引號。動態字串使用反引號。
使用陣列成員對變數賦值時,優先使用解構賦值。
函式的引數如果是物件的成員,優先使用解構賦值。
如果函式返回多個值,優先使用物件的解構賦值,而不是陣列的解構賦值。
單行定義的物件,最後一個成員不以逗號結尾。多行定義的物件,最後一個成員以逗號結尾。
使用擴充套件運算子(…)拷貝陣列。
使用 Array.from 方法,將類似陣列的物件轉為陣列。
那些需要使用函式表示式的場合,儘量用箭頭函式代替。因為這樣更簡潔,而且綁定了 this。
簡單的、單行的、不會複用的函式,建議採用箭頭函式。如果函式體較為複雜,行數較多,還是應該採用傳統的函式寫法。
所有配置項都應該集中在一個物件,放在最後一個引數,布林值不可以直接作為引數
使用預設值語法設定函式引數的預設值。
區分 Object 和 Map,只有模擬現實世界的實體物件時,才使用 Object。如果只是需要key: value的資料結構,使用 Map 結構。
總是用 Class,取代需要 prototype 的操作。因為 Class 的寫法更簡潔,更易於理解。
使用extends實現繼承,因為這樣更簡單,不會有破壞instanceof運算的危險。
Module 語法是 JavaScript 模組的標準寫法,堅持使用這種寫法。使用import取代require。使用export取代module.exports。
如果模組預設輸出一個函式,函式名的首字母應該小寫;如果模組預設輸出一個物件,物件名的首字母應該大寫。

Array.of方法用於將一組值,轉換為陣列。
Array.from()可以將各種值轉為真正的陣列,並且還提供map功能,將空位處理成undefined。

Object.assign方法的第一個引數是目標物件,後面的引數都是源物件。
注意,如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性會覆蓋前面的屬性。
Object.assign拷貝的屬性是有限制的,只拷貝源物件的自身屬性(不拷貝繼承屬性),也不拷貝不可列舉的屬性。

由於 Set 結構沒有鍵名,只有鍵值(或者說鍵名和鍵值是同一個值),所以keys方法和values方法的行為完全一致。
Set 結構的例項預設可遍歷,它的預設遍歷器生成函式就是它的values方法。這意味著,可以省略values方法,直接用for…of迴圈遍歷 Set。