let與var的區別,為什麼什麼要用let?

2022-05-15 09:59:10 字數 639 閱讀 1824

1.var是全域性宣告,let是塊級作用的,只適用於當前**塊

var a = 1;

if(true

)

if(){}內就是let作用於的塊

2.var變數會發生變數提公升,let則不會進行變數提公升

console.log(a)

var a=2;

console.log(a) 結果為underfined

如果是 let a =2 則會提示報錯

3.var 會造成重複賦值,迴圈裡的賦值可能會造成變數洩露至全域性

4.let在乙個塊級作用只能賦一次值,並進行當前**塊的鎖區,就是說當前塊只有let宣告的這個變數是有用的

var a =2;

if(true

)這塊**的鎖區

let a;

}

5.let在乙個塊級內,只能宣告乙個乙個相同的變數名

var a =2;

if(true

)

let和var的區別是什麼

let是es6引入的他和var都是定義變數的,但是他們又是有區別的。1,var是最近的函式作用域,let的作用域是最接近的塊作用域,這個比函式的作用域要小。2 當他們是全域性變數時,let和var是相同的。當他們處在乙個函式內,也是相同的。let me go var i able 或者 functi...

var 與 let 的區別

var與let的區別是作用域不同,var作用域在最近的函式區塊內,let作用域在最近的封閉區塊內,比函式區塊要小。如果沒有在區塊內的話,二者都是全域性的。全域性的 在函式區塊之外使用的話,二者是等價的,都是全域性的。let me go globally scoped vari able global...

let與var的區別

let為es6新增的用來宣告變數的命令,用法類似與var,那麼let和var具體是怎麼個用法以及他們之間有什麼區別呢?一.let宣告的變數只在let 塊有效 console.log a 報錯,a is not defined console.log b 2複製 用let宣告了變數a,用var宣告了變...