Javascript全局變量var與不var的區(qū)別深入解析
相信你對(duì)全局變量一定不陌生,在函數(shù)作用域里用a=1這種形式定義的變量會(huì)是一個(gè)全局變量,在全局作用域里,用下面3種形式都可以創(chuàng)建對(duì)全局可見(jiàn)的命名:
<script>
var a = 1;
b = 2;
window.c = 3;
</script>
對(duì)于b=2這種方式, 它其實(shí)和c是一樣的,在執(zhí)行這個(gè)賦值語(yǔ)句的時(shí)候,會(huì)沿著作用域鏈尋找名字叫做b的變量,一直找到作用域鏈的頂端還沒(méi)有找到,于是給window添加一個(gè)屬性b然后賦值。
var與不var有兩個(gè)區(qū)別:
1 var的全局變量不能被刪除,因?yàn)閐elete智能刪除對(duì)象的可刪除的屬性,而通過(guò)var 定義的全局屬性會(huì)被標(biāo)明不可刪除。需要說(shuō)明的是,delete不成功并不會(huì)拋錯(cuò),delete的返回值是true|false。
2 var定義的全局變量會(huì)被提升,而不用var定義的全局變量不會(huì)被提升??梢钥聪旅娉绦虻膱?zhí)行結(jié)果:
<script>
alert(a);
var a=1;
</script>
<script>
alert(a);//error, a undefined
a=1;
</script>
相關(guān)文章
JavaScipt基本教程之JavaScript語(yǔ)言的基礎(chǔ)
2008-01-01JS失效 提示HTML1114: (UNICODE 字節(jié)順序標(biāo)記)的代碼頁(yè) utf-8 覆蓋(META 標(biāo)記)的沖突的代
今天使用F12調(diào)試的時(shí)候提示HTML1114: (UNICODE 字節(jié)順序標(biāo)記)的代碼頁(yè) utf-8 覆蓋(META 標(biāo)記)的沖突的代碼頁(yè) utf-8,需要的朋友可以參考下2017-06-06JavaScript學(xué)習(xí)歷程和心得小結(jié)
在過(guò)去,JavaScript只是被用來(lái)做一些簡(jiǎn)單的網(wǎng)頁(yè)效果,比如表單驗(yàn)證、浮動(dòng)廣告等,所以那時(shí)候JavaScript并沒(méi)有受到重視。2010-08-08javascript類(lèi)型系統(tǒng)——undefined和null全面了解
下面小編就為大家?guī)?lái)一篇javascript類(lèi)型系統(tǒng)——undefined和null全面了解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07緩動(dòng)函數(shù)requestAnimationFrame 更好的實(shí)現(xiàn)瀏覽器經(jīng)動(dòng)畫(huà)
requestAnimationFrame是什么?一直是我們大家所疑惑的,緩動(dòng)函數(shù)requestAnimationFrame 更好的實(shí)現(xiàn)瀏覽器經(jīng)動(dòng)畫(huà),接下來(lái)將為大家詳細(xì)介紹2012-12-12javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
以下程序例子實(shí)現(xiàn)了split和整數(shù)字符串互轉(zhuǎn)的用法2009-03-03菜鳥(niǎo)學(xué)習(xí)JavaScript小實(shí)驗(yàn)之函數(shù)引用
由于變量b中保存的是函數(shù)的引用,當(dāng)函數(shù)變化時(shí),b也隨時(shí)變化,且不管函數(shù)出現(xiàn)的先后順序。兩次alert(b),雖然位置不一樣,但是內(nèi)容相同。2010-11-11跨域請(qǐng)求的完美解決方法(JSONP, CORS)
下面小編就為大家?guī)?lái)一篇跨域請(qǐng)求的完美解決方法(JSONP, CORS)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06詳解JavaScript中循環(huán)控制語(yǔ)句的用法
這篇文章主要介紹了詳解JavaScript中循環(huán)控制語(yǔ)句的用法,包括break語(yǔ)句和continue語(yǔ)句的使用方法,需要的朋友可以參考下2015-06-06