MST

星途 面试题库

面试题:JavaScript 模板标签参数传递与类型处理

假设你有一个模板标签函数,它接受不同类型(字符串、数字、对象等)的参数,如何在模板标签函数内部对这些不同类型的参数进行有效的处理和转换,以满足特定的业务需求?请给出具体代码实现。
33.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
// 模板标签函数
function templateFunction(strings, ...values) {
    let result = '';
    for (let i = 0; i < strings.length; i++) {
        result += strings[i];
        if (i < values.length) {
            let value = values[i];
            // 处理不同类型参数
            if (typeof value === 'number') {
                value = `数值: ${value}`;
            } else if (typeof value === 'object') {
                value = `对象: ${JSON.stringify(value)}`;
            } else if (typeof value === 'function') {
                value = `函数: ${value.name}`;
            }
            result += value;
        }
    }
    return result;
}

// 使用示例
const num = 42;
const obj = { key: 'value' };
const func = () => {};
const result = templateFunction`这是一个数字: ${num},这是一个对象: ${obj},这是一个函数: ${func}`;
console.log(result);

上述代码中,templateFunction 是模板标签函数。strings 是模板字符串的静态部分数组,...values 是模板字符串插值部分的值数组。在函数内部,通过遍历 stringsvalues,针对不同类型的 values 进行处理转换后拼接生成最终结果。