JavaScript-Function基礎知識

來源:互聯網
上載者:User

標籤:ros   缺點   cti   javascrip   記憶體   var   global   記憶體泄露   傳回值   

function 1.   定義:一段預先設定的代碼塊,可以反覆調用,根據輸入參數的不同,返回不同的值; 2.   函數的聲明方法:    (1)function 命令聲明函數  function  fname(  ){    };    (2)函數運算式: var  a=function( ){    } ;    (3)Function 建構函式:var a=new Function(  )  ;    ——不常用;、 3.   函數的覆蓋:   函數若被重複聲明,後面的聲明會覆蓋前面的聲明; 4.   函數的調用方法:(1)、()運算子    funcName( )  ,()可以加入函數的參數;                                 (2)、 window . funcName( ) 5. return :   函數體內部可以加入return語句,return所帶的運算式是函數傳回值; 6. 不允許在非函數代碼中聲明函數,允許函數套函數;  7.(1) name屬性: 返回緊跟在function關鍵字之後的那個函數名;    (2) length屬性: 返回形參的個數;    (3) arguments (類數組) :返回函數實參的個數;            函數傳參:形參,實參                       function abc( 形參1,形參2,.......形參n){                    ... 實參1,2,.....n
 判斷實參arguments,且arguments 類似數組
 
8.  函數的參數不是必需的,js允許省略參數;
 
9.   自執行函數 :(1)  (function(){   code } )();                                eg:   ( kk=function(){
                alert("測試自執行");
})();
             (2)(function(){   code } ());

eg: ( LL=function(){
                alert(‘22222‘);
}()) ;

(3) !function(){ code }();
                 eg: !function(){
                alert(‘3333‘);
}();

10.   函數的範圍(scope):變數存在的範圍;
    1、全域範圍            (整個window都可以調用)
2、函數(局部)範圍 (指的是函數內部變數)
        (1)在函數外部聲明的變數就是全域變數(global  variable);在函數內部可以使用全域變數(整個window都可以調用);        (2)在函數內部定義的變數,外部無法讀取,稱為“局部變數”;  11.閉包    函數內部聲明變數一定要用var,否則聲明了一個全域變數;    閉包本質:將函數內部和外部串連起來的橋樑,可以簡單理解為函數套函數。    閉包的用處: 1.讀取函數內部變數                        2.讓這些變數始終保持在記憶體中,閉包使它的誕生環境一直存在                        3.封裝對象的私人屬性和私人方法    ---------------------------------------------以下內容來自搜尋整理------------------------------------------------閉包原理及應用 1.為什麼需要閉包?    保護函數內的變數安全。在記憶體中維持一個變數。    通過保護變數的安全實現JS私人屬性和私人方法(不能被外部存取)
  2.怎麼釋放被閉包的變數記憶體?在Javascript中,如果一個對象不再被引用,那麼這個對象就會被GC回收。如果兩個對象互相引用,而不再被第3者所引用,那麼這兩個互相引用的對象也會被回收。因為函數a被b引用,b又被a外的c引用,這就是為什麼函數a執行後不會被回收的原因。
  3.代碼中函數a的內建函式b,被函數a外面的一個變數c引用的時候,這就叫建立了一個閉包。有時候函數b也可以用一個匿名函數代替來返回,即 return function(){};

優點:1.保護函數內的變數安全,加強了封裝性

     2.在記憶體中維持一個變數(用的太多就變成了缺點,占記憶體)
      閉包之所以會佔用資源是當函數a執行結束後, 變數i不會因為函數a的結束而銷毀, 因為b的執行需要依賴a中的變數。

 


4.不適合情境:返回閉包的函數是個非常大的函數

閉包的典型架構應該就是jquery了。
閉包是javascript語言的一大特點,主要應用閉包場合主要是為了:設計私人的方法和變數。
這在做架構的時候體現更明顯,有些方法和屬性只是運算邏輯過程中的使用的,不想讓外部修改這些屬性,因此就可以設計一個閉包來只提供方法擷取。

 

5.閉包的缺點就是常駐記憶體,會增大記憶體使用量量,使用不當很容易造成記憶體泄露。

     <---------學習筆記,謝謝指正!--------> 

JavaScript-Function基礎知識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.