JavaScript函數使用知識點回顧

JS函數本質更像一個對象,有屬性和方法。函數

將函數定義做爲對象的屬性,則稱之爲對象方法;函數若是用於建立新的對象,則稱之爲對象的構造函數。spa

(1)JS使用關鍵字  function  定義函數。

函數能夠經過聲明定義,也能夠是一個表達式。code

function functionName( parameters){
    //函數體,執行的代碼
   //函數體內的可執行語句以分號間隔
}

函數的聲明語句不是可執行語句,因此不須要以分號結束。對象

函數只有在調用的時候纔會執行。blog

函數表達式能夠存儲在變量中,該變量能夠做爲一個函數使用。這種狀況的函數被稱爲  匿名函數  沒有函數名稱。遞歸

var x = function ( a,b ){ return a + b};
var z = x ( 4,3 );

(2)JS中還可使用自帶的函數構造器  Function( )  進行定義。

var myFunction = new Function("a" , "b", "return a*b");  
//構造函數中myFunction是對象形式
var x = myFunction(4,3);

在JS中不少時候須要儘可能避免使用關鍵字  new   ,上面的實例能夠不適用構造函數,直接寫成如下形式作用域

var myFunction = function(a,b){ return a*b };
var x = myFunction(4,3);

函數提高:

提高是JS默認將當前做用域提高到前面去的行爲,應用在變量的聲明和函數的聲明。所以函數能夠在聲明以前調用。(使用表達式定義函數時沒法進行提高,做用域被表達式中的變量限定了io

myFunction(5);
function myFunction(y){
    return y * y;
}

自調用函數:function

函數表達式後跟 () ,則函數會自動調用。可是函數內的參數不能自調用聲明的函數,必定要把這個和遞歸區分開class

(function (){
    var x = "hello";     //我將調用本身
})();    //經過添加括號來講明這是一個函數表達式    (函數聲明)()

有返回值的函數一般均可以看成一個值用於賦值或運算表達式中。

相關文章
相關標籤/搜索