面试题答案
一键面试// 模板标签函数
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
是模板字符串插值部分的值数组。在函数内部,通过遍历 strings
和 values
,针对不同类型的 values
进行处理转换后拼接生成最终结果。