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是数组形式,而且当传入值为空时,只会显示 []

posted @ 2020-09-24 15:39  独舟者  阅读(118)  评论(0)    收藏  举报