js中的全局变量和局部变量
因?yàn)閖s中只用兩種作用域,也就對(duì)應(yīng)這兩種類型的變量。
1:全局變量 -> ?在全局范圍內(nèi)都是可以訪問的。
2:局部變量?-> ?只能在當(dāng)前作用域進(jìn)行訪問。
在js中有一種特殊的情況,在函數(shù)作用域內(nèi)聲明的變量,沒有用var字,那么該變量是一個(gè)全局變量。
再看一個(gè)例子:
總結(jié):
1:子集作用域內(nèi)是可以訪問父級(jí)作用域(或上一級(jí))的變量,但是父級(jí)作用域是不能訪問到子集作用域內(nèi)的變量。
2:在訪問某一個(gè)變量的時(shí)候,先在當(dāng)前作用域查找是否有該變量,就近原則,如果沒有,往上一級(jí)查找(父級(jí)),如果還沒有,接著往上查找,直到全局作用域,如果還沒有,返回的就是一個(gè)undefined。
3:沒有使用var聲明的變量是全局變量,不推薦使用。
4:變量超出作用域之后就會(huì)被銷毀,全局變量在關(guān)閉頁(yè)面或關(guān)閉瀏覽器時(shí)才會(huì)被銷毀,所以盡量少使用全局變量,會(huì)占內(nèi)存空間的。
----------------------------------------------------------------------
補(bǔ)充:什么時(shí)候變量的值會(huì)是undefined?
有兩種情況:
1:沒有該變量,也就是沒有定義該變量
2:定義了該變量,但是沒有給該變量賦值。
轉(zhuǎn)載于:https://blog.51cto.com/11871779/2120006
總結(jié)
以上是生活随笔為你收集整理的js中的全局变量和局部变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VisualSVN安装配置与使用
- 下一篇: 进程通信之 Binder 机制浅析