js中的全局變量和局部變量

因爲js中只用兩種作用域,也就對應這兩種類型的變量。

1:全局變量 ->  在全局範圍內都是可以訪問的。

2:局部變量 ->  只能在當前作用域進行訪問。

5.jpg

在js中有一種特殊的情況,在函數作用域內聲明的變量,沒有用var字,那麼該變量是一個全局變量。

6.jpg

再看一個例子:

7.jpg

總結:

1:子集作用域內是可以訪問父級作用域(或上一級)的變量,但是父級作用域是不能訪問到子集作用域內的變量。

2:在訪問某一個變量的時候,先在當前作用域查找是否有該變量,就近原則,如果沒有,往上一級查找(父級),如果還沒有,接着往上查找,直到全局作用域,如果還沒有,返回的就是一個undefined。

3:沒有使用var聲明的變量是全局變量,不推薦使用。

4:變量超出作用域之後就會被銷燬,全局變量在關閉頁面或關閉瀏覽器時纔會被銷燬,所以儘量少使用全局變量,會佔內存空間的。

----------------------------------------------------------------------

補充:什麼時候變量的值會是undefined?

有兩種情況:

1:沒有該變量,也就是沒有定義該變量

2:定義了該變量,但是沒有給該變量賦值。




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