Exp 后缀附加到标记模板 (JavaScript) 中的 arguments/variable
Exp suffix appended to arguments/variable in Tagged Templates (JavaScript)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates
这是上面 link 中的代码:
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 link 你包括:
The first argument of a tag function contains an array of string values. The remaining arguments are related to the expressions.
您的模板有 3 个由表达式分隔的字符串块(一个表达式是 ${}
,其中包含一些内容),这些块是 "That "
、" is a "
和 "."
因此,在本例中称为 strings
的第一个参数将是 ["That ", " is a ", "."]
。有两个表达式,person
和 age
,因此它们将被放入后续参数中:第二个参数的值为 person
,第三个参数的值为 age
。这可能在这个片段中得到了最好的说明:
function myTag(strings, a, b, c) {
console.log(a, b, c);
}
myTag`foo ${1 + 1} bar ${2 + 2} baz ${3 + 3}` // logs 2 4 6
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates
这是上面 link 中的代码:
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 link 你包括:
The first argument of a tag function contains an array of string values. The remaining arguments are related to the expressions.
您的模板有 3 个由表达式分隔的字符串块(一个表达式是 ${}
,其中包含一些内容),这些块是 "That "
、" is a "
和 "."
因此,在本例中称为 strings
的第一个参数将是 ["That ", " is a ", "."]
。有两个表达式,person
和 age
,因此它们将被放入后续参数中:第二个参数的值为 person
,第三个参数的值为 age
。这可能在这个片段中得到了最好的说明:
function myTag(strings, a, b, c) {
console.log(a, b, c);
}
myTag`foo ${1 + 1} bar ${2 + 2} baz ${3 + 3}` // logs 2 4 6