首頁  >  文章  >  web前端  >  ES6塊級作用域詳解

ES6塊級作用域詳解

小云云
小云云原創
2018-01-26 16:45:571566瀏覽

眾所周知ES5之前javascript語言只有函數作用域和全域作用域,使用var來宣告變量,var聲明的變數還存在變數提升使人困惑不已。我們先來複習ES5的var聲明,再對比學習let和const 。

var

var宣告之函數作用域與全域作用域。

來段程式碼體會一下:

function getName() {
 if (1 + 1 === 2) {
 var name = 'xixi';
 }

 console.log(name);
}

getName();//xixi

在c或java語言中name本應該只在if區塊中使用的,但是在if的外面也可以存取到,這個就是js沒有區塊級作用域的一種體現。這個弊端在for迴圈中體現的十分明顯:

for (var i = 0; i < 10; i ++) {
 // ...
}

console.log(i);// 10

var i的本意是宣告個臨時變數i,用來遍歷數組等,本不應該在for迴圈的外部存取到,但現在卻可以被訪問到你說鬧不鬧心?好一點的程式設計師會用立即執行函數來模擬區塊級作用域,原來的我會注意一下盡量不使用相同的變數名

以上是ES6塊級作用域詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn