前端小筆記

  for ... of是做爲ES6新增的遍歷方式,容許遍歷一個含有iterator接口的數據結構而且返回各項的值。數組

  for...of與 ES3中的for ... in的區別以下:瀏覽器

  1. for ... of遍歷獲取的是對象的鍵值,for ... in 獲取的是對象的鍵名。
  2. for ... in會遍歷對象的整個原型鏈,性能很是差不推薦使用,而for ... of只遍歷當前對象不會遍歷原型鏈。
  3. 對於數組的遍歷,for ... in會返回數組中全部可枚舉的屬性(包括原型鏈),for ... of只返回數組的下標對於的屬性值。
  4. for ... of循環的原理其實也是利用了遍歷對象內部的iterator接口,將for ... of循環分解成最原始的for循環,內部實現的機制能夠這麼理解。

  往返緩存(Back/Forward cache)緩存

  往返緩存是瀏覽器爲了在用戶頁面間執行前進後退操做時擁有更加流暢體驗的一種策略。該策略具體表現爲,當用戶前往新頁面時,將當前頁面的瀏覽器DOM狀態保存到bfcache中;當用戶點擊後退按鈕的時候,將頁面直接從bfcache中加載,節省了網絡請求的時間。 網絡

  剩餘運算符和擴展運算符的區別數據結構

  剩餘運算符和擴展運算符的區別就是,剩餘運算符會收集這些集合,放到右邊的數組中,擴展運算符是將右邊的數組拆分紅元素的集合,它們是相反的,ES6語法的環境下不要在使用arguments,使用剩餘運算符替代(箭頭函數沒有arguments,必須使用剩餘運算符才能訪問參數集合)。擴展運算符能夠和數組的解構賦值一塊兒使用,可是必須放在最後一個,由於剩餘/擴展運算符的原理實際上是利用了數組的迭代器,它會消耗3個點後面的數組的全部迭代器,讀取全部迭代器的value屬性,剩餘/擴展運算符後不能在有解構賦值,由於剩餘/擴展運算符已經消耗了全部迭代器,而數組的解構賦值也是消耗迭代器,可是這個時候已經沒有迭代器了,因此會報錯。函數

相關文章
相關標籤/搜索