JavaScript函數定義

JavaScript 函數定義

使用關鍵字 function 定義函數。函數

函數聲明定義spa

function  函數名(參數){對象

  代碼塊ip

}作用域

函數聲明後不會當即執行,會在咱們須要的時候調用到字符串

函數表達式定義get

函數能夠儲存在變量中 (函數是一個匿名函數,儲存在變量中,不須要函數名,經過變量名調用)io

var  變量名 = function ( 參數,參數){function

  代碼塊class

}

函數表達式存儲在變量後,變量也能夠做爲函數使用:

var  變量名x = function (參數,參數){return a* b};

var  z =x(4*3) ;

以分號結尾,由於是一個執行語句。

經過內置的 JavaScript 函數構造器(Function())定義。

Function() 構造函數

var  a = new  Function()(「a」,「b」 「return a*b」);

var  x = a (4,3);

在JavaScript中避免使用new關鍵字

不用構造函數,上例能夠寫成:

var a = function (a,b){ return a*b}

var x = a (4,3);

 

函數提高:

提高(Hoisting)應用在變量的聲明與函數的聲明。變量的聲明(注意不包含變量初始化)會被提高(置頂)到聲明所在的上下文。可是變量初始化的順序不變。

所以函數能夠在聲明以前調用。

可是使用函數表達式定義的沒法提高!

總結 :
  Javascript 中函數聲明和函數表達式是存在區別的,函數聲明在JS解析時進行函數提高,所以在同一個做用域內,無論函數聲明在哪裏定義,該函數均可以進行調用。
  而函數表達式的值是在JS運行時肯定,而且在表達式賦值完成後,該函數才能調用。這個微小的區別,可能會致使JS代碼出現意想不到的bug。

自調用函數:

函數表達式能夠 "自調用"。若是表達式後面緊跟 () ,則會自動調用。不能自調用聲明的函數。經過添加括號,來講明它是一個函數表達式: 是匿名自我調用的函數 (沒有函數名)。

(function (){函數體})();

函數可做爲一個值使用:

function a(){return a*b}

var x = a(3,4);

函數可做爲一個表達式使用:

 

function a(){return a*b}

var x = a(3,4)-1;

函數是對象

在 JavaScript 中使用 typeof 操做符判斷函數類型將返回 "function" 。  但JavaScript 函數描述爲一個對象更加準確。   JavaScript 函數有 屬性 和 方法。  

arguments.length 屬性返回函數調用過程接收到的參數個數:

function a (d,s){ return  arguments.length }              document.getElementById("id").innerHTML = myFunction(4, 3);

toString() 方法將函數做爲一個字符串返回:

function x (a,b){ return  a*b }              document.getElementById("id").innerHTML = myFunction(4, 3).toString ();

相關文章
相關標籤/搜索