JavaScript 塊級作用域
如果掌握C#或者Java標準物件導向的語言,那麼此概念非常容易理解,因為幾乎完全相同。
在ES2015之前,只有函式作用域和全域性作用域,具體參閱JavaScript作用域一章節。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func() { var antzone = "螞蟻部落"; } func() console.log(antzone);
上面的程式碼會報錯,因為變數antzone只在函式作用域中有效。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼for (var index = 0; index < 5; index++) { //code } console.log(index);
由於上述程式碼沒有采用塊級作用域,那麼index的作用域是全域性的,列印結果是5。
一.塊級作用域概念:
(1).花括號{}和其中程式碼生成一個塊。
(2).在塊中,let和const宣告的變數和常量對外都是不可見的,稱之為塊級作用域。
(3).只有使用let和const宣告的變數或者常量在塊中對外不可見,var宣告的變數對外依然可見。
可以這麼認為,是let和const建立了塊級作用域。
關於let和const可以參閱以下兩篇文章:
(1).let可以參閱ES2015 let命令一章節。
(2).const可以參閱ES2015 const命令一章節。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼if (true) { let address = "青島市南區"; } console.log(address);
使用let宣告的變數address只在所在塊級作用域內有效。
二.語句塊和物件直接量的區別:
不要把物件直接量看做是塊級作用域,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var obj = { webName: "螞蟻部落", url: "softwhy.com", address:"青島市南區" }
上面的程式碼使用大括號建立了一個物件直接量,我們不能認為這是一個語句塊。再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼{ webName: "螞蟻部落", url: "softwhy.com", address:"青島市南區" }
程式碼會報錯,因為如果程式碼最左邊為大括號,那麼就會被解讀為語句,而不是物件直接量。
上面的程式碼會被解讀為標籤語句,具體可以參閱JavaScript 標籤語句一章節。
只要在外面包裹一個小括號就不會報錯了:
[JavaScript] 純文字檢視 複製程式碼({ webName: "螞蟻部落", url: "softwhy.com", address:"青島市南區" })
相關文章
- JavaScript塊級作用域宣告函式JavaScript函式
- ES6之塊級作用域
- JavaScript 作用域 與 作用域鏈JavaScript
- javaScript 作用域JavaScript
- JavaScript作用域JavaScript
- javascript之作用域與作用域鏈JavaScript
- ES6語法(一)塊級作用域、字串字串
- 深入理解JavaScript作用域和作用域鏈JavaScript
- 重讀《深入理解ES6》 —— 塊級作用域
- JavaScript之作用域鏈JavaScript
- 學習JavaScript作用域JavaScript
- JavaScript深度理解——作用域JavaScript
- javascript 詞法作用域JavaScript
- 淺談JavaScript作用域JavaScript
- 圖解javascript作用域圖解JavaScript
- ES6let命令和塊級作用域和const命令
- ES6深入學習(一)塊級作用域詳解
- 深入理解javascript系列(六):作用域與作用域鏈JavaScript
- 理解 JavaScript 中的作用域JavaScript
- 深入理解JavaScript作用域JavaScript
- 徹底搞懂JavaScript作用域JavaScript
- 談談 JavaScript 的作用域JavaScript
- Javascript-this/作用域/閉包JavaScript
- JavaScript高階特性 — 作用域JavaScript
- JavaScript之作用域和閉包JavaScript
- 深入理解 Javascript 之 作用域JavaScript
- (譯)理解javascript中的作用域JavaScript
- JavaScript之變數及作用域JavaScript變數
- JavaScript中變數和作用域JavaScript變數
- 淺淺淺談JavaScript作用域JavaScript
- JavaScript 變數的作用域鏈JavaScript變數
- 塊級作用域替代“匿名立即執行函式表示式(匿名IIFE)”函式
- FE.ES-理解ECMA Javascript作用域JavaScript
- javascript 基礎(作用域和閉包)JavaScript
- 晝貓筆記 JavaScript — 作用域技巧!!筆記JavaScript
- JavaScript作用域相關的總結JavaScript
- JavaScript執行環境及作用域JavaScript
- 現代 JavaScript 的變數作用域JavaScript變數