3--面試總結-es6

es6文檔: http://es6.ruanyifeng.com/
一、es6新特性
  • let/const
  • 變量的解構賦值(數組的解構賦值,對象的解構賦值,字符串的解構賦值,數值和布爾值的解構賦值,函數參數的解構賦值)
    • 注:圓括號問題
      解構賦值雖然很方便,可是解析起來並不容易。對於編譯器來講,一個式子究竟是模式,仍是表達式,沒有辦法從一開始就知道,必須解析到(或解析不到)等號才能知道
      不能使用圓括號的狀況:   
      • 變量聲明語句
        eg:  let [(a)] = [1];  //報錯
      • 函數參數
        eg:  function f([(z)]) { return z; } // 報錯
      • 賦值語句的模式
        eg:  ({ p: a }) = { p: 42 };
  • 模板字符串
  • 數組相關
    • map
    • set()它相似於數組,可是成員的值都是惟一的,沒有重複的值。
  • 字符串相關
           str表示查找的字符串,,index表示開始搜索的位置
    • startWith(str, index)  返回布爾值,表示參數字符串是否在原字符串的頭部  eg:  let s="Hello word!" s.startWith('Hello') // true
    • endsWith(str, index)   返回布爾值,表示參數字符串是否在原字符串的尾部  eg:  let s="Hello word!" s.startWith('!') // true 
    • includes(str, index)     返回布爾值,表示是否找到參數字符串                     eg:  let s="Hello word!" s.includes('o') //true
    • repeat(N)  表示將原字符串重複N次(若是傳參是小數則會被取整,若是傳參是負數或Infiniti會報錯)
    • padSrart(length, str)  若是某個字符串不夠指定長度,會在頭部補全。
    • padEnd(length, str)  尾部補全
    • trimStart()
    • trimEnd()
    • matchAll()  反法返回一個正則表達式在當前字符串的全部匹配
  • 新增數據類型symbal表示獨一無二的值。它是 JavaScript 語言的第七種數據類型,前六種是:undefinednull、布爾值(Boolean)、字符串(String)、數值(Number)、對象(Object)。
    • ... 展開操做符/剩餘操做
    • 函數相關
      • 箭頭函數
      • 函數參數默認值
      • name屬性
    • 類/繼承 
    • proxy
    • promise
    • async
      <script src="path/to/myModule.js" defer></script>
      <script src="path/to/myModule.js" async></script>
      上面代碼中,<script>標籤打開deferasync屬性,腳本就會異步加載。渲染引擎遇到這一行命令,就會開始下載外部腳本,但不會等它下載和執行,而是直接執行後面的命令。
      deferasync的區別是:defer要等到整個頁面在內存中正常渲染結束(DOM 結構徹底生成,以及其餘腳本執行完成),纔會執行;async一旦下載完,渲染引擎就會中斷渲染,執行這個腳本之後,再繼續渲染。
      一句話,defer是「渲染完再執行」,async是「下載完就執行」。
      另外,若是有多個defer腳本,會按照它們在頁面出現的順序加載,而多個async腳本是不能保證加載順序的。
    • module的語法
      • export
      • import
相關文章
相關標籤/搜索