以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
149. interpolation

function t(str, data = {}) {
  const pattern = /{{([^}]+)}}/g;
  return str.replace(pattern, (_, group) => data[group.trim()] || '');
}

解析:

  • 使用正则表达式匹配{{}}的内容。
  • 通过replace()方法进行替换,替换内容为data对象中对应的属性值,如果对应属性不存在或值为空,则替换为''。其中第一个参数_表示整个匹配的字符串,第二个参数group表示匹配的括号中的内容。
  • 第二个参数data默认值为空对象,即不传入时也不会报错。

注意点:

  • 处理{{}}内容时需要去除空格后再从data对象中获取属性值,否则会因为属性名不一致而获取不到值导致替换出错。
  • 如果存在多个包含在{{}}中的单个{}符号,会将其当做普通字符而不是关键字处理,结果可能会受到影响。