【问题标题】:Javascript function parameter in a Template Literal string issue模板文字字符串问题中的 Javascript 函数参数
【发布时间】:2018-06-22 09:59:16
【问题描述】:

我正在使用基本网络浏览器的网络工具(F12 工具集)学习 javascript。这是一个显示示例

function sayHello(n){
document.writeln($`Hello {n}`);
}
sayHello("Andy Anderson");
//undefined appears as a result.

我预期的结果是“Hello Andy Anderson”,但我得到了一个未定义的结果

【问题讨论】:

  • 我知道你的学习只是一个仅供参考,但document.write 是你在生产就绪的 JS 代码中要避免的东西。您可能有兴趣在学习时查看console.log,或者像.appendChild 这样的用于操作的DOM API。

标签: javascript ecmascript-6 template-strings


【解决方案1】:

美元符号的位置很奇怪。它应该在字符串中。

document.writeln(`Hello ${n}`);

您没有收到错误的原因是 $ 可能在您的环境中被定义为一个函数,因此它被用作 a "tag" for the template literal

【讨论】:

  • 哦!我想如果用法类似于C#。
【解决方案2】:

美元符号出现在左大括号之前:

document.writeln(`Hello ${n}`);

function sayHello(n){
    document.writeln(`Hello ${n}`);
}
sayHello("Andy Anderson");

【讨论】:

  • 我建议在最后修复或删除该评论,因为它显然不再适用。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
相关资源
最近更新 更多