在JavaScript中格式化字符串[关闭]

2nbm6dog  于 2023-06-20  发布在  Java
关注(0)|答案(4)|浏览(107)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
9天前关闭
Improve this question

for( var i = 0 ; i < 5 ; i++) {
  console.log("This is printing ${i} time") }

是否有语法错误?因为这个程序的输出

This is printing ${i} time
This is printing ${i} time
This is printing ${i} time
This is printing ${i} time
This is printing ${i} time

我期待着类似于

This is printing 1 time
This is printing 2 time
This is printing 3 time
This is printing 4 time
This is printing 5 time
jv4diomz

jv4diomz1#

for(var i = 0 ; i < 5 ; i++) {
  console.log(`This is printing ${i} time`) 
}

在JavaScript中格式化字符串中的变量时,需要使用`而不是“or”

gtlvzcf8

gtlvzcf82#

要解决这个问题,请使用反引号**``而不是双引号""**。

for (let i = 0; i < 5; i++) {
  console.log(`This is printing ${i} time`);
}

尽量避免使用var。对于作用域代码块,使用let而不是var。

bd1hkmkf

bd1hkmkf3#

使用反引号

for( var i = 0 ; i < 5 ; i++) {
  console.log(`This is printing ${i} time`) }
insrf1ej

insrf1ej4#

TL;DR:字符串需要使用反引号(`),而不是引号。

for(var i = 0 ; i < 5 ; i++) {
  console.log(`This is printing ${i} time`) // <- Note the backticks
}

您尝试使用的是template literal
根据MDN(重点是我的):
模板文字是用反勾(`)字符**分隔的文字,允许多行字符串,嵌入表达式的字符串插值,以及称为标记模板的特殊构造。
因此,它们必须用反引号分隔。但是,您使用的是纯双引号。
常规引号只生成常规字符串文字,而反引号表示您需要模板文字的行为和功能。
根据MDN,它们有时被称为 * 模板字符串 *,但它们的能力远远超过简单的强模板。因此命名为 template literals

相关问题