使用關鍵字 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)應用在變量的聲明與函數的聲明。變量的聲明(注意不包含變量初始化)會被提高(置頂)到聲明所在的上下文。可是變量初始化的順序不變。
所以函數能夠在聲明以前調用。
可是使用函數表達式定義的沒法提高!
自調用函數:
函數表達式能夠 "自調用"。若是表達式後面緊跟 () ,則會自動調用。不能自調用聲明的函數。經過添加括號,來講明它是一個函數表達式: 是匿名自我調用的函數 (沒有函數名)。
(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 ();