深入理解ES6之var,let,const區別
深入理解ES6之函式
深入理解ES6之物件
深入理解ES6之類
深入理解ES6之解構
深入理解ES6之Promise與非同步程式設計
深入理解ES6之模組
第一:塊級範圍內
var變數提升(不存在以下問題)
let塊級作用域,指定塊的外部無法訪問
const常量宣告塊級作用域,不會發生變數提升,宣告後不可以改變因此需要初始化.(對於一個物件而言不可改變是指引用不可變,內容可以改變相當於java的final關鍵字)
1:禁止重複宣告
2:暫時性死區
3:不在塊級作用域範圍內使用按照undefined處理
console.log(typeof value)//因為發生在塊級作用域外面,不會因為暫時性死區而崩潰
if(true){
let value = "blue"
}
第二:迴圈範圍內
1:let沒有任何問題
2:var迴圈中的使用
var funcs = [];
for(var i=0;i<10;i++){
funcs.push(functiong(){console.log(i)})
}
func.forEach(function(func){
func()
});
因為變數i在迴圈的每次迭代中都被共享了 因此最後呼叫後的值會是列印10此10
3:迴圈內的常量宣告
const在for迴圈中使用時第一次正常執行第二次i++時,會因為試圖修改常量報錯;
const能夠在for-in與for-of迴圈內工作,因為迴圈為每次迭代建立了一個新的變數繫結而不是去試圖修改已繫結的變數值。
第三:全域性範圍內
1:var會覆蓋掉之前存在的同名屬性,let和const不會汙染全域性屬性
總結:
預設情況下應該使用const,只有知道變數需要被改變時才使用let,這樣預期外的改動都可以算作是bug處理。
相關文章
- ES6中var,let,const的區別
- es6 let const與var 的區別
- var let const區別
- let const var 區別
- let,const,var區別
- ES6之var、let、const
- var、const、let 的區別
- ES5 和 ES6:let const var 區別
- ES6中let和var和const的區別
- 【ES6】var、let、const三者的區別
- JavaScript 高階—— ES6新增語法 const(let const var區別)JavaScript
- var和let/const的區別
- var、let和const的區別
- JavaScript中let、const、var 的區別JavaScript
- 深入理解JS:var、let、const的異同JS
- JavaScript中的var、let 及 const 區別JavaScript
- var、let、const宣告變數的區別變數
- var,let和const深入解析(一)
- ES6系列——let和const深入理解
- 教你理解let和var的區別
- var、let和const三者有哪些區別?
- 【前端面試】(四)JavaScript var let const的區別前端面試JavaScript
- let var與const
- var、let、const變數宣告的區別及特點變數
- JavaScript 中的 Var,Let 和 Const 有什麼區別JavaScript
- ES6 之 let / const
- ES6之let、const
- ES6中的let與var的區別
- 變數和函式宣告提升,let和var const區別變數函式
- ES6之const和let
- ES6 let和var的區別是什麼?
- let與const區別
- 1分鐘帶你瞭解var let 和 const 的區別
- 關於es6 let var const 以及Symbol的總結Symbol
- var 和 let 的區別
- let與var的區別
- ES6系列之 let 和 const
- 1.變數:var,let,const變數