JS之关于函数
Javascript的函数也是一个对象
function test() {
...
}
var test = function(){
...
}
函数内部一旦执行return,则函数执行完毕,如果没有return语句,则返回 undefined
关于第二种函数的定义,第一个test()实际上是函数对象,函数名test可以视为指向该函数的变量,此时,function就是一个匿名函数,通过test来调用,末尾需要加;
传入参数为空时
函数返回NaN,因为为空时,参数收到undefined,最终计算结果为NaN
arguments
该关键字,可获取调用时所传入的参数,在函数内部调用且只适用于函数内,函数不定义参数也可以获取到传入值
arguments类似Array,但非Array
function test(x) {
console.log('x = ' + x)
for (var i = 0; arguments.length; i++) {
console.log('arg' + i + '=' + arguments[i]);
}
}
test(1,2,3)
返回:
// x = 1
// arg 0 = 1
// arg 1 = 2
// arg 2 = 3
rest参数
当获取传入参数大于函数定义参数时(>=1),我们就得从固定索引上进行循环,从而排除干扰,rest参数能帮我们解决这个问题,ES6标准引入
function test(a,b,...rest) {
console.log('a = ' + a);
console.log('b = ' + b);
console.log(rest);
}
test(1,2,3,4,5);
返回:
// a = 1
// b = 2
// Array[3,4,5]
test(1)
返回:
// a = 1
// b = underfined
// Array[]
没错,此时变量rest是数组形式,而且当传入值为空时,只会显示 []

浙公网安备 33010602011771号