<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評論-129  文章-0  trackbacks-0

    帶ID的函數表達式:

    var fn = function fnid(){};  

    按照ECMA262定義,上面這段腳本等價于:

    with({fnid:null}){  
      
    var fn = fnid = function(){};  
    }  

     


    注意:fnid在with外是不可見的,但是IE沒有嚴格遵守ECMA規范(同樣的情況發生在catch語法上)。在IE上相當于:
    var fnid = function(){};  
    var fn = fnid;  

    在剛剛發布的JSA1beta上,還不能處理這個問題(新版本將這周內發布)。同時,鑒于這種語法在不同瀏覽器上表現不同,還是建議盡量避免使用(這點上,我個人還是更喜歡ie的方式)。

    var語句:
    太常用了,但是,沒有注意還是很容易出問題。
    var 用來聲明全局或函數變量,但是,只是申明,重復申明也不能置空,范圍是函數或者全局空間,位置在函數或腳本頂端,與塊無關,這些與常用高級語言區別很大。

    怪癖的代碼

    var vaiable =0;  
    function test(){  
       variable 
    =1;//別擔心,不會改動全局變量vaiable  
       //do ..  
       var vaiable;//變量申明無順序(一律置頂),只是賦值有順序。  
    }  

     

    常見錯誤有:

    var flag;//這里可能有人(包括我自己)喜歡自做聰明的利用一下變量的初始值undefined  
    while(!flag){//沒準那個角落里面已經給當前函數內同名變量給賦值了就慘了  
      //..  
    }  

     

    posted on 2007-06-30 16:47 金大為 閱讀(1267) 評論(3)  編輯  收藏 所屬分類: JavaScript

    評論:
    # re: JS幾處怪癖的語義 2007-06-30 21:44 | 豬頭小隊長
    var vaiable =0;
    function test(){
    variable =1;//別擔心,不會改動全局變量vaiable
    }

    test();
    alert(vaiable);

    打印的是1,而不是0,怎么回事?  回復  更多評論
      
    # re: JS幾處怪癖的語義 2007-07-01 08:11 | 金大為
    @豬頭小隊長
    呵呵,你看看你這個函數和我的例子有什么不同吧:)  回復  更多評論
      
    # re: JS幾處怪癖的語義 2007-07-01 10:39 | 豬頭小隊長
    hehe,faint  回復  更多評論
      
    主站蜘蛛池模板: 一个人免费高清在线观看| 国产亚洲精品91| 911精品国产亚洲日本美国韩国| 亚洲午夜国产精品无码| 国产成人高清亚洲| 亚洲午夜爱爱香蕉片| 亚洲国产精品综合久久一线| yy6080亚洲一级理论| 成人亚洲综合天堂| 全亚洲最新黄色特级网站 | 一级成人生活片免费看| 成年网在线观看免费观看网址| 黄色网址大全免费| 永久免费无码日韩视频| 国产成人精品免费大全| 老司机精品免费视频| 久草免费福利在线| 十八禁在线观看视频播放免费| 中文字幕无码一区二区免费| 免费人成激情视频在线观看冫| 免费精品99久久国产综合精品| 四虎国产成人永久精品免费| 蜜桃AV无码免费看永久| 久久受www免费人成_看片中文| 成年女人男人免费视频播放| 日韩一区二区在线免费观看 | 最近免费中文字幕中文高清| 无码人妻一区二区三区免费看| 最近中文字幕高清免费中文字幕mv| 日本视频一区在线观看免费| 最近中文字幕无吗高清免费视频| 午夜爱爱免费视频| 亚洲国产人成精品| 亚洲国产精品无码久久一线| 亚洲福利一区二区精品秒拍| 亚洲午夜无码久久久久小说| 看全免费的一级毛片| 中文字字幕在线高清免费电影| 免费看又黄又无码的网站| 在线看片免费不卡人成视频| 免费又黄又爽又猛的毛片|