<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        Javascriptvar變量隱式聲明方法詳解

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:17:03
        文檔

        Javascriptvar變量隱式聲明方法詳解

        Javascriptvar變量隱式聲明方法詳解:在JavaScript中,var用來聲明變量,但是這個語法并不嚴(yán)格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。諸如此類。這有一個問題,比如說在代碼中的某一行,我想使用的一個已聲明的變量x,結(jié)果由于打字或者拼寫錯誤,這個變量被寫成y了,結(jié)果
        推薦度:
        導(dǎo)讀Javascriptvar變量隱式聲明方法詳解:在JavaScript中,var用來聲明變量,但是這個語法并不嚴(yán)格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。諸如此類。這有一個問題,比如說在代碼中的某一行,我想使用的一個已聲明的變量x,結(jié)果由于打字或者拼寫錯誤,這個變量被寫成y了,結(jié)果

        在JavaScript中,var用來聲明變量,但是這個語法并不嚴(yán)格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。

        諸如此類。這有一個問題,比如說在代碼中的某一行,我想使用的一個已聲明的變量x,結(jié)果由于打字或者拼寫錯誤,這個變量被寫成y了,結(jié)果相當(dāng)于“隱式”聲明了一個變量y,在實際編程過程中,這種錯誤有時比較難以發(fā)現(xiàn)。
        除此之外,今天通過同事介紹,了解到這種“隱式聲明”中的別外一個問題。
        當(dāng)你在當(dāng)前上下文內(nèi)進行這種“隱式”聲明時,JavaScript引擎會先在當(dāng)前上下文中尋找是否之前有聲明此變量,如果沒有,再到上一級的上下文中去尋找,如果一直未找到,會最后在window上聲明這個變量!
        比如:

        代碼如下:

        window. y = "hello"; 
        function func(){ 
        y = "OH, NO!!!"; 
        } 
        func(); 
        alert(window.y); //#=> display "OH, NO!!!"

        當(dāng)上下文中的任意一層有這種“隱式”定義的變量時,那么該層的該變量會被修改,而不會在window上生成一個新的變量。(這種bug也挺討厭的,尤其是封裝的比較復(fù)雜的代碼)
        比如:

        代碼如下:

        var x = "window.x"; 
        function a() { 
        var x = "a's x"; 
        var b = function() { 
        var c = function() { 
        //no var! 
        x = "c's x:"; 
        }; 
        alert("before c run,the b.x:" + x); 
        c(); 
        alert("after c run, the b.x:" + x); 
        }; 
        alert("a.x is:" + x); 
        b(); 
        alert("after b function runed, the a.x is:" + x); 
        }; 
        alert("before a run, window.x:" + x); 
        a(); 
        alert("after a run, window.x:" + x);

        這里面有以下幾層:window, func a, func b, func c一直作層級嵌套。window->a->b->c
        window和a中,都有定義變量x,b中未定義該變量,在c中‘隱式'聲明了一個x,該x最終修改了a變量的值。
        牢記,在JavaScript中,聲明變量,一定前面要加var .

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Javascriptvar變量隱式聲明方法詳解

        Javascriptvar變量隱式聲明方法詳解:在JavaScript中,var用來聲明變量,但是這個語法并不嚴(yán)格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。諸如此類。這有一個問題,比如說在代碼中的某一行,我想使用的一個已聲明的變量x,結(jié)果由于打字或者拼寫錯誤,這個變量被寫成y了,結(jié)果
        推薦度:
        標(biāo)簽: js 方式 詳解
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲狠狠色丁香婷婷综合| 黄床大片免费30分钟国产精品| 精品国产免费观看久久久| 国产亚洲福利精品一区二区| 国产亚洲精品影视在线产品 | 国产jizzjizz免费看jizz| 男女一边桶一边摸一边脱视频免费 | 91免费在线播放| 日日摸日日碰夜夜爽亚洲| 亚洲国产精品成人精品无码区在线| 国产又大又粗又长免费视频| 免费人成动漫在线播放r18| 91亚洲一区二区在线观看不卡| 日本免费网站观看| 在线美女免费观看网站h| 色五月五月丁香亚洲综合网| 久久精品国产亚洲AV网站| 暖暖日本免费在线视频| 久久久久国产免费| 日韩精品无码永久免费网站| 亚洲精品视频在线免费| 亚洲午夜无码AV毛片久久| 丁香花免费高清视频完整版| 成人片黄网站色大片免费观看cn| 亚洲中文字幕乱码熟女在线| 久久亚洲精品国产精品黑人| 免费国产一级特黄久久| 亚洲免费在线视频观看| 国色精品va在线观看免费视频 | 国产精品青草视频免费播放| 自拍日韩亚洲一区在线| 亚洲va国产va天堂va久久| 免费一看一级毛片人| 99久久这里只精品国产免费| 日本免费中文视频| 一个人看的hd免费视频| 日韩色视频一区二区三区亚洲 | 亚洲国产综合人成综合网站00| 精品亚洲一区二区三区在线观看 | 亚洲国产亚洲综合在线尤物| 国产亚洲色婷婷久久99精品|