2024-05-10 ES6新特性小總結

技术开发-陈伟健發表於2024-05-10
  • ES6,即ECMAScript 2015,js的一個重量級版本,相較於ES5,它更新了一些新特性以及語法。
  1. let和const關鍵字:用於宣告變數。
    1. let:定義塊級區域性變數。
    2. const:定義常量,注意:如果是定義物件或陣列,那麼該物件或陣列中的值可被改變,但引用不能改變。
  2. 箭頭函式:提供了一種更簡潔的函式宣告語法,並且沒有自己的thisargumentssupernew.target
    1. 帶引數一般寫法:const a = (a) => console.log(b);
    2. 沒有引數寫法可省略引數括號:const a = b => console.log(b);
    3. 帶函式體寫法:const a = () => { console.log(1 + 1); }
  3. 解構賦值:允許從陣列或物件中提取值,並賦值給不同的變數。
    1. const arr = {a: 1,b:2}; const {a,b} = arr; console.log(a);
  4. 模板字串:使用反引號(``)來定義字串,可以在其中嵌入表示式。
    1. const a = 7; console.log(`123456${a}`);
  5. 展開運算子(...):可以在函式呼叫、陣列字面量和物件字面量中展開陣列或物件。
    1. 複製陣列,用它複製陣列可避免淺複製的問題,用法為const arr = [1,2,3];const arr2 = [...arr];這樣就能的到新的複製arr內容的陣列arr2
    2. 合併兩個陣列:const arr1 = [1]; const arr2 = [2]; const arr3 = [...arr1,arr2]; console.log(arr3); // [1,2,3];
  6. Symbol型別:新增的一種原始資料型別,用於建立唯一且不可變的識別符號。
    1. 一種特殊不可變的資料型別,即便值是一樣的,但還是不相等的,表示唯一標識。
    2. 例:const a = Symbol("一");const b = Symbol("一");console.log(a === b); // false
    3. 用作物件的key,避免鍵衝突
  7. Map和Set資料結構:Map是鍵值對的集合,鍵可以是任何型別;Set是值的集合,且值唯一;二者是兩種資料結構。
    1. Map 物件儲存鍵值對,並且任何值(物件或原始值)都可以作為鍵或值。
    2. Set 物件允許你儲存任何型別的唯一值,無論是原始值或者是物件引用。
  8. Proxy物件:用於定義基本操作的自定義行為,如屬性查詢、賦值、列舉、函式呼叫等。
  9. Reflect物件:提供與物件互動的方法,如定義、檢查、修改物件屬性等。
  10. 模組化:引入importexport關鍵字,支援ES6模組的匯入和匯出。
  11. 類(class):基於原型的繼承的語法糖,提供了更接近傳統物件導向程式設計的語法。
  12. Promise物件:用於處理非同步操作,提供了一種更簡潔的鏈式呼叫方法。
  13. async/await:基於Promise的非同步程式設計語法糖,使非同步程式碼看起來更像同步程式碼。
  14. 生成器(Generator):函式的一種特殊型別,可以暫停和恢復其執行。
  15. 迭代器(Iterator):使物件能夠按一定順序訪問其各個元素。
  16. 預設引數:允許在函式定義時設定引數的預設值。
  17. 剩餘引數(Rest parameters):使用...語法表示一個函式可以接收任意數量的引數。
  18. 擴充套件運算子(Spread Operator)與剩餘引數(Rest Operator):兩者在語法上都是...,但用途不同。擴充套件運算子用於展開陣列或物件的元素,而剩餘引數用於收集函式引數。
    1. const arr = [1,2,3,4]; const newArr = [...arr,5]; // [1,2,3,4,5]
  19. Array.from()方法:將類陣列物件或可迭代物件轉換為真正的陣列。
  20. Object.assign()方法:將所有可列舉屬性的值從一個或多個源物件複製到目標物件。它將返回目標物件。

相關文章