面试题答案
一键面试- 调用
complexFunc(1)
:- 输出结果:3
- 实参与形参匹配原理:
- 形参
a
匹配实参1
。 - 形参
b
由于有默认值2
,所以b
取值为2
。 rest
形参没有额外实参传入,所以rest
是一个空数组[]
。rest.reduce((acc, cur) => acc + cur, 0)
在空数组上调用,根据reduce
方法,初始值为0
,最终结果就是0
。- 所以
a + b + rest.reduce((acc, cur) => acc + cur, 0)
即1 + 2+ 0 = 3
。
- 形参
- 调用
complexFunc(1, 3, 4, 5)
:- 输出结果:13
- 实参与形参匹配原理:
- 形参
a
匹配实参1
。 - 形参
b
匹配实参3
。 rest
形参收集剩余实参[4, 5]
。rest.reduce((acc, cur) => acc + cur, 0)
,从初始值0
开始,依次累加数组元素,即0 + 4+ 5 = 9
。- 所以
a + b + rest.reduce((acc, cur) => acc + cur, 0)
即1 + 3+ 9 = 13
。
- 形参