函数参数默认值
只有当函数的形参没有传入的时候,默认值才会生效,默认参数的值在函数内不会改变,即便修改arguments对象中的值,也不会改变默认参数的值,可以通过表达式lai来设置默认参数的值,前面的默认参数不能通过后面的默认参数赋值
function doSome(a=1,b=1+1){
console.log(arguments[0]);
console.log(arguments[1]);
arguments[0]=3;
arguments[1]=4;
console.log(a);
console.log(b);
}
undefined
doSome()
VM382:2 undefined
VM382:3 undefined
VM382:6 1
VM382:7 2
undefined
function doSome(a=b+1,b=1){}
undefined
doSome()
VM423:1 Uncaught ReferenceError: b is not defined
at doSome (<anonymous>:1:19)
at <anonymous>:1:1
doSome @ VM423:1
(anonymous) @ VM439:1
无命名参数
通过"...args"可以将多个参数放到args数组中
function someArg(...args){
console.log(args)
}
undefined
someArg(1,2,3,4,5,6)
VM495:2 (6) [1, 2, 3, 4, 5, 6]
undefined