隨筆-57  評(píng)論-129  文章-0  trackbacks-0

          帶ID的函數(shù)表達(dá)式:

          var fn = function fnid(){};  

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

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

           


          注意:fnid在with外是不可見(jiàn)的,但是IE沒(méi)有嚴(yán)格遵守ECMA規(guī)范(同樣的情況發(fā)生在catch語(yǔ)法上)。在IE上相當(dāng)于:
          var fnid = function(){};  
          var fn = fnid;  

          在剛剛發(fā)布的JSA1beta上,還不能處理這個(gè)問(wèn)題(新版本將這周內(nèi)發(fā)布)。同時(shí),鑒于這種語(yǔ)法在不同瀏覽器上表現(xiàn)不同,還是建議盡量避免使用(這點(diǎn)上,我個(gè)人還是更喜歡ie的方式)。

          var語(yǔ)句:
          太常用了,但是,沒(méi)有注意還是很容易出問(wèn)題。
          var 用來(lái)聲明全局或函數(shù)變量,但是,只是申明,重復(fù)申明也不能置空,范圍是函數(shù)或者全局空間,位置在函數(shù)或腳本頂端,與塊無(wú)關(guān),這些與常用高級(jí)語(yǔ)言區(qū)別很大。

          怪癖的代碼

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

           

          常見(jiàn)錯(cuò)誤有:

          var flag;//這里可能有人(包括我自己)喜歡自做聰明的利用一下變量的初始值undefined  
          while(!flag){//沒(méi)準(zhǔn)那個(gè)角落里面已經(jīng)給當(dāng)前函數(shù)內(nèi)同名變量給賦值了就慘了  
            //..  
          }  

           

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

          評(píng)論:
          # re: JS幾處怪癖的語(yǔ)義 2007-06-30 21:44 | 豬頭小隊(duì)長(zhǎng)
          var vaiable =0;
          function test(){
          variable =1;//別擔(dān)心,不會(huì)改動(dòng)全局變量vaiable
          }

          test();
          alert(vaiable);

          打印的是1,而不是0,怎么回事?  回復(fù)  更多評(píng)論
            
          # re: JS幾處怪癖的語(yǔ)義 2007-07-01 08:11 | 金大為
          @豬頭小隊(duì)長(zhǎng)
          呵呵,你看看你這個(gè)函數(shù)和我的例子有什么不同吧:)  回復(fù)  更多評(píng)論
            
          # re: JS幾處怪癖的語(yǔ)義 2007-07-01 10:39 | 豬頭小隊(duì)長(zhǎng)
          hehe,faint  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 易门县| 潞西市| 阿瓦提县| 城固县| 得荣县| 宁波市| 固始县| 古交市| 廊坊市| 彭阳县| 大英县| 汪清县| 额尔古纳市| 扬州市| 达尔| 寿光市| 玉门市| 洞口县| 华亭县| 无为县| 威远县| 秦皇岛市| 措美县| 鸡东县| 石渠县| 孟连| 买车| 西乌珠穆沁旗| 常德市| 安顺市| 布拖县| 图木舒克市| 乡宁县| 张家港市| 广饶县| 盐城市| 根河市| 平罗县| 罗甸县| 宜春市| 泗洪县|