国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

javascript中錯(cuò)誤使用var造成undefined

2024-05-06 16:30:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了javascript中錯(cuò)誤使用var造成undefined的原因,實(shí)例分析了錯(cuò)誤使用var造成undefined的過(guò)程,感興趣的小伙伴們可以參考一下
 

在javascript中根據(jù)變量作用的范圍不同分為局部變量和全局變量,直接定義的變量是全局變量,全局變量可以被所有的腳本訪問(wèn);在函數(shù)中定義的變量是局部變量,局部變量只在函數(shù)內(nèi)有效。
如果全局變量和局部變量使用相同的變量名,則局部變量將會(huì)覆蓋全局變量。
例子代碼:

<!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <title>js中全局變量與局部變量</title>   </head>   <body>     <script type="text/javascript">       var a = "全局變量";       function test1()       {         var a = "局部變量";                  alert(a);       }              function test2()       {         alert(a);                  var a = "局部變量";                  alert(a);       }              function test3()       {         alert(a);                  a = "局部變量";                  alert(a);       }     </script>          <input type="button" value="test1" onclick="test1()"/>     <input type="button" value="test2" onclick="test2()"/>     <input type="button" value="test3" onclick="test3()"/>    </body> </html> 

運(yùn)行的結(jié)果是這樣的:
點(diǎn)擊test1 ,彈出局部變量。
點(diǎn)擊test2,彈出undefined,再?gòu)棾鼍植孔兞?br />  
點(diǎn)擊test3,彈出全局變量,再?gòu)棾鼍植孔兞?/strong>

這就是使用var和不使用的區(qū)別所在:
如果使用var,那么程序會(huì)強(qiáng)制定義一個(gè)新變量。
如果沒(méi)有使用var,系統(tǒng)會(huì)優(yōu)先在當(dāng)前上下文中搜索是否存在該變量,只有在不存在的前提下才會(huì)重新定義一個(gè)新變量。

test3中,使用的變量a均為全局變量,第一次直接輸出了全局變量,第二次是直接為全局變量賦值之后使用。
test1和test2中都存在在function中使用var定義同名新變量,會(huì)導(dǎo)致函數(shù)中的變量覆蓋掉全局變量。所以在test2中:第一次輸出的a是已經(jīng)被覆蓋了的局部變量a,但是沒(méi)有給予初值,所以會(huì)出現(xiàn)undefined這個(gè)結(jié)果。這樣使用變量實(shí)際上是錯(cuò)誤的,大家應(yīng)該避免。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴林左旗| 彝良县| 礼泉县| 永济市| 长兴县| 大方县| 玉溪市| 通江县| 醴陵市| 洪湖市| 和静县| 茂名市| 三原县| 射洪县| 龙泉市| 文水县| 康定县| 红桥区| 鄂伦春自治旗| 盐城市| 青海省| 桦南县| 辰溪县| 增城市| 赤壁市| 巨野县| 苍山县| 望奎县| 历史| 绵阳市| 明水县| 宾阳县| 阿坝县| 日土县| 安达市| 辽阳市| 宜川县| 永登县| 南昌县| 九江市| 陆良县|