面試——ES6有什麼新特性

不管是校招仍是社招,若是你恰巧被問及這個問題,那麼請你儘量的多說一點,這樣面試官纔會認爲你是真正的掌握了ES6,ES6的內容不少,這裏只羅列了經常使用的特性及其要點,在面試的時候還須要圍繞這些點根據本身的理解儘量的展開。最後本文只適用於面試回答,不適合用來學習ES6,若是你想更全面的的瞭解ES6,能夠閱讀阮老師的ES6入門es6

1. let和const命令的出現

  1. let和const區別:const定義一個只讀常量,一旦聲明變量,就必須當即初始化,不能留到之後賦值且不可改變。
  2. 不存在變量提高,聲明的變量必定要在聲明後使用,不然報錯
  3. 不容許重複聲明變量,不容許在相同做用域內,重複聲明同一個變量
  4. 塊級做用域,ES6以前只有函數做用域與全局做用域,一個大括號即一個塊級做用域
  5. 聲明的變量不在屬於window

2. 解構賦值

  1. 數組、對象、字符串等解構賦值的基本用法及默認值的設置
  2. 解構的用途
    (1) 交換變量的值
    (2) 接收函數返回的多個值
    (3) 函數參數默認值的設置 (4) 用於模塊導入的按需加載

3. 字符串的擴展

  1. 模版字符串
  2. 方法的增添 includes(),startsWith(),endsWith().....
  3. 正則表達式的具名組匹配

4. 數值的擴展

  1. 完善二進制(0b開頭)與八進制(0o開頭)的表示
  2. 方法的移植與增長parseInt()parseFloat()window對象移植到Number對象上
  3. 指數運算符**

5. 函數的擴展

  1. 函數參數默認值的設置
  2. 箭頭函數
    使用箭頭函數的注意事項:
    (1)函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象
    (2)不能夠看成構造函數,也就是說,不可使用new命令,不然會拋出一個錯誤
    (3)不可使用arguments對象,該對象在函數體內不存在。若是要用,能夠用 rest 參數代替
  3. rest參數

6. 數組的擴展

  1. 擴展運算符
    用途
    (1)複製數組
    (2)合併數組
    (3)函數的rest參數
  2. 方法的擴展Array.from()Array.of()實例上的方法fill()flat()

7. 對象的擴展

  1. 屬性以及方法的簡潔表示
  2. 屬性名錶達式
  3. 可遍歷性for..inObject.key(obj)
  4. super關鍵字的增長
  5. 新增方法Object.is()Object.assign()

8. Module導入模塊

講到這一點就頗有必要給面試官講一下ES6模塊與CommoonJS模塊的差別面試

  1. CommonJS 模塊輸出的是一個值的拷貝,ES6 模塊輸出的是值的引用。
  2. CommonJS 模塊是運行時加載,ES6 模塊是編譯時輸出接口。 若是你不是很清楚能夠閱讀這篇文章

9. 其餘方面

  1. promise與async的運用和理解,說起這裏他接下來可能會問promise的實現,這也是一道常考題
  2. Symbol數據類型
  3. set和map結構
  4. class

最後但願你面試成功,越努力越幸運,加油正則表達式

相關文章
相關標籤/搜索