面试题答案
一键面试- 设计思路
- 数据结构选择:使用数组来处理剩余参数,因为JavaScript的函数参数在内部是以类数组对象存在,将其转换为真正的数组方便后续操作。对于默认参数,可以使用对象字面量来存储默认值,这种方式易于管理和扩展。
- 处理默认参数:在函数内部,通过与传入参数进行对比,若传入参数未定义,则使用默认值。
- 处理剩余参数:使用
...
展开运算符将剩余参数收集到一个数组中。 - 性能优化点:避免不必要的中间数据结构创建和重复计算。尽量减少函数内部的全局变量访问,因为访问全局变量比访问局部变量慢。
- 核心代码示例
function myFunction(arg1 = 'default1', arg2 = 'default2', ...restArgs) {
// 函数体逻辑
let result = arg1 + arg2;
restArgs.forEach(arg => {
result += arg;
});
return result;
}