函数
创建方式
定义方式:
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
。
又是一个很神奇的语法。。。。
arguments
关键字arguments:指向当前函数调用时传入的所有参数。返回的方式类似Array,但是并不是一个Array
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
。