首頁  >  文章  >  web前端  >  JS關於作用域的一個問題

JS關於作用域的一個問題

php中世界最好的语言
php中世界最好的语言原創
2018-03-12 17:38:561443瀏覽

這次帶給大家JS關於作用域的一個問題,JS關於作用域的注意事項有哪些,下面就是實戰案例,一起來看一下。

var a = 1;function foo () {    console.log(a);    var a = 2;    console.log(a);
}
foo();

請分別寫出第一個 console.log 和第二個 console.log 的輸出值。
Javascript函數 變數的初始化順序

#預執行期

1.函數宣告被初始化,放置到全域變數(全域上下文環境)window中
2.var宣告的變數被放置到全域變數(全域上下文環境)window、或var所在的上下文環境如函數內部中,初始值為undefined

#執行期

當程式碼執行到時,變數賦值才會發生。非var宣告的變數也只在程式碼執行到後才被創建,然後放置到全域變數(全域上下文環境)window中

Javascript 上下文環境

全域上下文環境:Window

函數上下文環境:在函數內部使用var宣告的變數是本機變量,出了函數範圍後會被垃圾回收。閉包不會被垃圾回收。

即var宣告的變量,在預執行期都會被放到對應的上下文環境中,然後在執行期,對應上下文環境中的變數會被賦值。

答案

undefined 2

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Angular的新手教學

#Node.js的新手教學(二)

Node.js的新手教學(一)

#

以上是JS關於作用域的一個問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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