9. JavaScript - ES6+介紹
一、var
let
const
區別:
- 使用
var
聲明的變量,可以變量提升; - 使用
let
、const
聲明的變量,沒有變量提升;
二、 臨時死區(Temporal Dead Zone)
與
var
不同,let和const聲明的變量不會被提升到作用域頂部。因此,如果在聲明之前訪問這些變量,就會引發錯誤。
例如:
if (condition) {
console.log(typeof value); // 引用錯誤
let value = "blue";
}
三、變量提升
- 通俗的解釋是:將聲明變量的代碼移動到了頂部。
- 詳細點的解釋是:在生成執行環境時,有兩個階段:創建階段和執行階段。創建階段,JS解釋器找到需要提升的變量和函數,給他們在內存中提前開闢好空間。如果是函數,將整個函數放入內存中;如果是變量,只聲明,賦值爲undefined。執行階段,可以直接提前使用。
四、 箭頭函數
請參考文章讀書筆記:深入理解ES6 (三),該章第8節。
五、 class
請參考文章讀書筆記:深入理解ES6 (九)
六、 es6整體理解
請參考深入理解ES6系列文章。
參考鏈接:
http://blog.poetries.top/FE-Interview-Questions/base/#_86-%E8%B0%88%E8%B0%88%E5%8F%98%E9%87%8F%E6%8F%90%E5%8D%87%EF%BC%9F
https://blog.csdn.net/ZxxSteven/article/list/1?