let 命令 與 var的區別

2021-09-07 18:53:13 字數 790 閱讀 9685

es6 新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的**塊內有效。

for迴圈的計數器,就很合適使用let命令。

for (let i = 0; i < 10; i++) 

console.log(i);

// referenceerror: i is not defined

如果使用var的話,就會輸出10。

for (let i = 0; i < 3; i++) 

// abc

// abc

// abc

上面**正確執行,輸出了 3 次abc。這表明函式內部的變數i與迴圈變數i不在同乙個作用域,有各自單獨的作用域。

暫時性死區

只要塊級作用域內存在let命令,它所宣告的變數就「繫結」(binding)這個區域,不再受外部的影響。

var tmp = 123;

if (true)

es6 明確規定,如果區塊中存在let和const命令,這個區塊對這些命令宣告的變數,從一開始就形成了封閉作用域。凡是在宣告之前就使用這些變數,就會報錯。

if (true)
es5 只有全域性作用域和函式作用域,沒有塊級作用域,這帶來很多不合理的場景。

console.log(insane); // 報錯

}}}};

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宣告了變...

let 與 var 的區別

let 與 var 的區別 a.let 不能重複宣告,但var可以 b.let會產生塊級作用域,且只在自己的作用域內生效,但var不受限制 c.變數提公升 console.log i undefined var i 10 console.log i 10 console.log i 報錯 let i...