MST

星途 面试题库

面试题:JavaScript默认参数、剩余参数与性能优化及函数式编程结合

在JavaScript中,假设你正在开发一个函数库,其中有一个函数需要接受多个参数,部分参数有默认值,并且要处理可变数量的剩余参数。要求该函数尽可能高效地执行,同时符合函数式编程的理念(无副作用,纯函数等)。请描述你的设计思路,包括如何选择数据结构,如何处理默认参数和剩余参数,以及可能涉及到的性能优化点。并给出核心代码示例。
34.7万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

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