首頁 > web前端 > js教程 > ES6塊級作用域詳解

ES6塊級作用域詳解

小云云
發布: 2018-01-26 16:45:57
原創
1589 人瀏覽過

眾所周知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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板