相同點:宣告變數。
不同點:
1、let宣告的變數只在let命令所在的**塊內有效。
for (var i=0; i<5; i++)
alert(a); //列印出 1;
alert(b); //報錯 b is not defined;
2、let不存在變數提公升。
console.log(a);
var a = 2; //列印 undefind(定義了未賦值)
console.log(b);
let b = 3; //報錯。b is
not defined(未定義)
3、let會造成暫時性死區。
var a = 2;
if (true)
4、let不允許在相同的作用域內重複宣告同乙個變數。
function
()
function
()
因此,不能在函式內部重新宣告引數。
function
func
(a)
function
func
(a)
}
ES6 var和let和const的區別
console.log a 10 在執行前會先進行變數提公升,提公升到全域性作用域最頂層,實際執行 如下 var a undefined console.log a foo function foo 這裡的函式是先呼叫後宣告,在執行之前會進行變數提公升和函式提公升,實際執行 如下 function ...
Es6中let與var區別
let用法類似於var,但是所宣告的變數,只在let命令所在的 塊內有效。for let i 0 i 10 i let與for完美搭配,只在迴圈體內有效function f1 console.log n 5 外層 不受內層 的影響例 var var a for var i 0 i 10 i a 6 ...
ES6中let與var的區別
for let i 0 i 10 i console.log i referenceerror i is not defined 計數器i只在for迴圈體內有效,在迴圈體外引用就會報錯。var 的情況 console.log foo 輸出undefined var foo 2 相當於 var foo...