隨筆-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 南哥 閱讀(528) 評論(1)  編輯  收藏 所屬分類: AJAX

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

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


          網站導航:
           
          主站蜘蛛池模板: 涟源市| 噶尔县| 固始县| 吴堡县| 资源县| 天祝| 淅川县| 民乐县| 武宁县| 慈利县| 皮山县| 洱源县| 河西区| 彰化县| 进贤县| 盖州市| 密云县| 福贡县| 海南省| 宁国市| 陈巴尔虎旗| 方正县| 甘南县| 贵州省| 建平县| 军事| 宁津县| 海淀区| 广东省| 高雄市| 德安县| 防城港市| 宝应县| 郧西县| 岳普湖县| 岳西县| 宜春市| 三亚市| 邛崃市| 峨眉山市| 新宾|