Exp 后缀附加到标记模板 (JavaScript) 中的参数/变量

问题描述

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates

这是上面链接中的代码:


    let person = 'Mike';
let age = 28;

function myTag(strings,personExp,ageExp) {
  let str0 = strings[0]; // "That "
  let str1 = strings[1]; // " is a "
  let str2 = strings[2]; // "."

  let ageStr;
  if (ageExp > 99){
    ageStr = 'centenarian';
  } else {
    ageStr = 'youngster';
  }

  // We can even return a string built using a template literal
  return `${str0}${personExp}${str1}${ageStr}${str2}`;
}

let output = myTag`That ${ person } is a ${ age }.`;

console.log(output);
// That Mike is a youngster.

没有与 Exp 后缀以及它如何调用具有相关前缀的变量相关的文档。有人知道我可以在哪里了解更多信息或这里发生了什么吗?

解决方法

Exp 后缀并不特殊,它只是变量名的一部分(它是表达式的缩写)。来自您包含的 MDN 链接:

标签函数的第一个参数包含一个字符串值数组。其余参数与表达式相关。

您的模板有 3 个由表达式分隔的字符串块(表达式是 ${},其中包含一些内容),这些块是 "That "" is a ""."因此,在本例中称为 strings 的第一个参数将是 ["That "," is a ","."]。有两个表达式,personage,因此它们将被放入后续参数中:第二个参数的值为 person,第三个参数的值为 { {1}}。这段代码可能最好地说明了这一点:

age

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...