欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年03月31日 16:02:04   作者:MingChaoSun  
這篇文章主要介紹了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)該避免。

相關(guān)文章

  • js實(shí)現(xiàn)兼容IE、Firefox的圖片縮放代碼

    js實(shí)現(xiàn)兼容IE、Firefox的圖片縮放代碼

    這篇文章主要介紹了js實(shí)現(xiàn)兼容IE、Firefox的圖片縮放代碼,涉及JavaScript操作圖片元素的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • JS實(shí)現(xiàn)進(jìn)度條動(dòng)態(tài)加載特效

    JS實(shí)現(xiàn)進(jìn)度條動(dòng)態(tài)加載特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)進(jìn)度條動(dòng)態(tài)加載特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • js實(shí)現(xiàn)簡(jiǎn)單點(diǎn)贊操作

    js實(shí)現(xiàn)簡(jiǎn)單點(diǎn)贊操作

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單點(diǎn)贊操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JS求解三元一次方程組值的方法

    JS求解三元一次方程組值的方法

    這篇文章主要介紹了JS求解三元一次方程組值的方法,涉及JS數(shù)學(xué)運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • js實(shí)現(xiàn)jquery的offset()方法實(shí)例

    js實(shí)現(xiàn)jquery的offset()方法實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)jquery的offset()方法,實(shí)例分析了jquery的offset()方法原理與采用javascript實(shí)現(xiàn)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 動(dòng)態(tài)改變div的z-index屬性的簡(jiǎn)單實(shí)例

    動(dòng)態(tài)改變div的z-index屬性的簡(jiǎn)單實(shí)例

    這篇文章介紹了動(dòng)態(tài)改變div的z-index屬性的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下
    2013-08-08
  • 詳解ES7 Decorator 入門解析

    詳解ES7 Decorator 入門解析

    這篇文章主要介紹了詳解ES7 Decorator 入門解析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • layui原生表單驗(yàn)證的實(shí)例

    layui原生表單驗(yàn)證的實(shí)例

    今天小編就為大家分享一篇layui原生表單驗(yàn)證的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • javascript事件委托的方式綁定詳解

    javascript事件委托的方式綁定詳解

    我們?cè)趯W(xué)習(xí)JavaScript中,難免都會(huì)去網(wǎng)上查一些資料。也許偶爾就會(huì)遇到“事件委托”,但是,大多數(shù)時(shí)說(shuō)的是“事件綁定”,對(duì)于“事件委托”,或是不提,或是淺嘗輒止。對(duì)于我這個(gè)比較好奇的人來(lái)說(shuō),實(shí)在很蛋疼。尤其是想更多的了解“事件委托”的時(shí)候。
    2015-06-06
  • 微信小程序?qū)崿F(xiàn)聊天對(duì)話(文本、圖片)功能

    微信小程序?qū)崿F(xiàn)聊天對(duì)話(文本、圖片)功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)聊天對(duì)話功能,可以發(fā)送文本、圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評(píng)論