js中的反引号与单引号

新手上路,请多包涵

在 node.js(服务器端)上工作,我想知道我是否应该一直使用所有反引号(`)而不是常规引号(“或’),因为它会使代码保持一致。是否有任何特定原因为不同的事物保留不同类型的引号。如果所有非替代引号都转换为反引号,是否会影响性能?

原文由 tinker-tailor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 547
2 个回答

反引号允许您使用字符串模板,例如:

 var value = 4;
var str = `text with a ${value}`
// str will be  : 'text with a 4'

对于 " vs ' 我说看看这篇文章:https: //stackoverflow.com/a/9959952/6739517

至于性能,如果您只是对普通字符串使用反引号,它似乎是一样的。然而,在构建字符串时,看起来串联仍然是可行的方法。看看这里:

2018 年更新:在某些情况下,ES6 字符串模板似乎比连接更快。请查看以下帖子以获取一些硬性数字:

ES6 模板文字是否比字符串连接更快?

2020 更新:一般来说,在考虑使用哪种类型的报价时,您不必担心性能。可能会有微小的差异,但正如许多人指出的那样,这些都是如此微小的改进,您可能最好优化代码而不是考虑使用哪个字符。也就是说,这并不能真正回答一致性问题。对我来说,我通常遵循 Airbnb 的风格指南。也就是说,字符串总是用单引号 (‘) 声明,除非您需要构建一个字符串,那么您应该避免连接并且只使用带有反引号 (`) 的字符串模板。最后,双引号是为 JSON 和 HTML 保留的。

原文由 Niles Tanner 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用反引号或单引号创建字符串之间的性能差异小得离谱,我认为您不应该将其视为使用其中一种的理由。 这里有一些基本的证据

但是 - 我会反对将模板字符串用于不是模板的字符串,因为很明显当您使用单引号时不会发生模板化。如果我看到一个带有反引号的字符串——我会立即开始寻找要替换的内容,或者为什么要使用它们。相比之下,单引号就很清楚了。

我认为这不会影响性能 - 但我认为您也不应该“只是为了保持一致”而这样做。它不一致,因为它是一个完全不同的构造 - 与 whilefor 循环相同。它们是用于不同工作的不同工具。

原文由 Shadow 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏