定义方式: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