var、let和const 有什麼區別 ?
var 作用域爲該語句所在的函數內,存在變量提升。
let 塊級作用域,該語句所在的代碼塊內,不存在變量提升,暫時性死區,相同作用域不允許重複聲明。
const 使用聲明的常量(棧內存在的值和地址),值類型的不可以改,引用類型的可變,引用不可變要用Object.freeze()
【基本類型】 Boolen, Number, String 是把直接值直接存在棧內。
【引用類型】 Object(Function, Array ….)是把值存在對應的堆地址。
【變量提升】函數聲明和變量聲明總是會被解釋器悄悄地被”提升”到方法體的最頂部。JavaScript 中,函數及變量的聲明都將被提升到函數的最頂部。
JavaScript 中,變量可以在使用後聲明,也就是變量可以先使用再聲明。ES6聲明的方式?
es5: var function
es6: var function let const import classes5 普通函數和箭頭函數的區別
普通函數:this指向調用它的那個對象,會自動綁定上各種變量。
=> 沒有自動綁定this arguments上的各種局部變量,箭頭函數中調用 this 時,僅僅沿着作用域鏈向上尋找,找到最近的一個 this 。箭頭函數作爲匿名函數,不能用new,箭頭函數沒有原型屬性。
ES6學習筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.