定義方式:code
function 函數名(參數){ 函數體 }
關鍵字建立對象
var 函數名=new Function('參數','參數','函數體')
由於函數能夠經過new方法來建立,能夠從側面看出函數具備的對象特性。函數也是對象的一類。索引
var x = function (a,b) { console.log(a+b); }; x(2,3); // var y = new Function('a','b','console.log(a+b)'); y(4,5); //這大概是我見過最蠢的建立函數的方法了,和語法描述的同樣,要把參數和函數體都用引號引發來,若是函數體內部還有引號或者使用字符串,就要用轉義符。就當個笑話看吧
調用參數傳入:
例如上面的例子,若是我調用函數的方法就是x(2)
,js解釋器會默認認爲我就傳入了a
值,其中b
的值就是undefined
,因此返回的值就是NaN
。
可是若是,我調用的方法是x(a,3)
,就會直接報錯a is not defined
。字符串
又是一個很神奇的語法。。。。it
關鍵字arguments:指向當前函數調用時傳入的全部參數。返回的方式相似Array,可是並非一個Arrayio
function fuc(x) { for (var i=0;i<arguments.length;i++){ console.log(arguments[i]); } } fuc(10,40,5,60)
從上述代碼中能夠看出這個argumens
具備Array的索引和length的特性。
利用arguments能夠得到調用者傳入的全部參數,也就是說即便函數不定義任何參數,仍是能夠拿到一個值arguments.length===0
。console