隨筆-80  評論-117  文章-0  trackbacks-0

          1.       js中的變量作用域(Variable Scope)

          java,c++中不同的地方是,js中沒有塊作用域(Block Scope)。變量的作用域將從聲明一直持續到function的結尾。看個例子就會明白了。

             function testScope()

             {

                var a = "a";  

           

                function g() { alert(a); }

                g();   //這里輸出結果為a ,因為a的作用域將持續到function  testScope的結尾

                         

           

               for(var i=0; i<2; i++)

               {

                 var a = "a is changed";  //這里的變量a將覆蓋開始聲明的變量a

                 var b = "b";    //b的作用域從聲明一直到function的結尾         

           

               }

           

              alert(a);    // 輸出結果為  a is changed js首先查找到的a是在循環中定義的那個

              alert(b);    // 輸出為 b   java,此時將訪問不到變量b,b已經出了作用域,但是在js中是可以的.

           

           

             }

           

           

          2. js中的垃圾回收(garbage collection

              js也是一門采用垃圾回收機制的語言,和java一樣。js的解釋器負責分配和回收內存。

           程序員無需像C++中那樣手動用delete釋放內存。

          但是js也有delete關鍵字它是用來刪除對象的屬性,或者刪除數組中的指定元素。并不能刪除對象本身。用法如下:

          語法

          delete objectName.property
          delete objectName[index]
          delete property

          參數

          objectName

          要刪除屬性或元素的對象。

          property

          要刪除的屬性。

          index

          要刪除的數組元素的序號。

           

          第三種用法delete property只能在 with 語句中使用,用來刪除對象的屬性。

          補充:在微軟的JScript中有CollectGarbage()函數可以用來回收內存,官方文檔不推薦使用此方法,你的程序不應該依賴此方法。IE在最小化的時候會進行回收內存。
            


          posted on 2006-02-27 11:33 南哥 閱讀(523) 評論(1)  編輯  收藏 所屬分類: AJAX

          評論:
          # re: JavaScript中容易被誤解的兩個地方 2007-03-23 17:01 | hy
          學習了
            回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 凤台县| 慈溪市| 丹寨县| 封开县| 合水县| 平谷区| 金乡县| 城口县| 麻阳| 长岭县| 铁岭县| 清河县| 澳门| 定南县| 乡宁县| 托克逊县| 东乡族自治县| 通化县| 台南县| 永丰县| 景宁| 安远县| 防城港市| 陈巴尔虎旗| 仲巴县| 原平市| 丰都县| 镇巴县| 屏东县| 常州市| 湘乡市| 茶陵县| 黄平县| 云龙县| 阳西县| 增城市| 福鼎市| 台安县| 中卫市| 西平县| 迁安市|