您好,登錄后才能下訂單哦!
JS通過(guò)函數(shù)管理作用域。在函數(shù)內(nèi)部聲明的變量只在這個(gè)函數(shù)內(nèi)部,函數(shù)外面不可用。全局變量則是在任何函數(shù)外面聲明的或者未聲明直接簡(jiǎn)單使用的。
為避免變量的沖突和覆蓋,應(yīng)盡量少的使用全局變量。
但有時(shí)會(huì)不自覺(jué)的創(chuàng)建出全局變量。首先,你可以不需要聲明就可以使用變量;第二,js有隱含的全局概念,意味著你不聲明的任何變量都會(huì)成為一個(gè)全局對(duì)象屬性。
此段代碼中的result沒(méi)有聲明,但是代碼照樣運(yùn)行正常,但在調(diào)用函數(shù)后你會(huì)多一個(gè)全局命名空間。所以最好是始終使用var聲明變量。下面教大家怎么看變量是全局變量還是局部變量。
上面的代碼是一個(gè)匿名函數(shù)立即執(zhí)行(如果不是()立即執(zhí)行,需要調(diào)用這個(gè)函數(shù)), 用chrome瀏覽器,在變量聲明處加斷點(diǎn),點(diǎn)F5刷新后,走到斷點(diǎn),查看右側(cè)scope,沒(méi)有h變量。
點(diǎn)F10走過(guò)斷點(diǎn),可以看到Global里有變量h,說(shuō)明不加var,生成全局變量了。
下面用var定義變量試試
在Local里聲明了變量h
點(diǎn)F10走過(guò)斷點(diǎn),h賦值hello
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。