js var let const之間的區別

var

var是js中最早出現的定義變量關鍵字,但是var有着天生的缺陷,var定義的變量並不是完全以塊作爲作用域的,用var來定義的變量,有時候會出現意外的結果,比如:

for (var i = 0; i < 10; i++) {
    setTimeout(function() { console.log(i); }, 100 * i);
}

這段代碼輸出的是:

10
10
10
10
10
10
10
10
10
10

而不是我們期待的:

0,1,2,3,4,5,6,7,8,9

這是因爲setTimeout函數讓後面的匿名函數延遲執行了,在第一個匿名函數執行時,for循環早就跑完了,這個時候i已經是10了,正是因爲var定義的變量會因爲時間跳出框外,所以在處理許多回調,事件之類的情況下會變得非常複雜。

let

let就是正常的用塊來表示作用域的變量。

const

const與let的區別在於用這個關鍵詞聲明的變量不能改變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章