在 node.js(服务器端)上工作,我想知道我是否应该一直使用所有反引号(`)而不是常规引号(“或’),因为它会使代码保持一致。是否有任何特定原因为不同的事物保留不同类型的引号。如果所有非替代引号都转换为反引号,是否会影响性能?
原文由 tinker-tailor 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 node.js(服务器端)上工作,我想知道我是否应该一直使用所有反引号(`)而不是常规引号(“或’),因为它会使代码保持一致。是否有任何特定原因为不同的事物保留不同类型的引号。如果所有非替代引号都转换为反引号,是否会影响性能?
原文由 tinker-tailor 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用反引号或单引号创建字符串之间的性能差异小得离谱,我认为您不应该将其视为使用其中一种的理由。 这里有一些基本的证据。
但是 - 我会反对将模板字符串用于不是模板的字符串,因为很明显当您使用单引号时不会发生模板化。如果我看到一个带有反引号的字符串——我会立即开始寻找要替换的内容,或者为什么要使用它们。相比之下,单引号就很清楚了。
我认为这不会影响性能 - 但我认为您也不应该“只是为了保持一致”而这样做。它不一致,因为它是一个完全不同的构造 - 与 while
或 for
循环相同。它们是用于不同工作的不同工具。
原文由 Shadow 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
反引号允许您使用字符串模板,例如:
对于
"
vs'
我说看看这篇文章:https: //stackoverflow.com/a/9959952/6739517至于性能,如果您只是对普通字符串使用反引号,它似乎是一样的。然而,在构建字符串时,看起来串联仍然是可行的方法。看看这里:
2018 年更新:在某些情况下,ES6 字符串模板似乎比连接更快。请查看以下帖子以获取一些硬性数字:
ES6 模板文字是否比字符串连接更快?
2020 更新:一般来说,在考虑使用哪种类型的报价时,您不必担心性能。可能会有微小的差异,但正如许多人指出的那样,这些都是如此微小的改进,您可能最好优化代码而不是考虑使用哪个字符。也就是说,这并不能真正回答一致性问题。对我来说,我通常遵循 Airbnb 的风格指南。也就是说,字符串总是用单引号 (‘) 声明,除非您需要构建一个字符串,那么您应该避免连接并且只使用带有反引号 (`) 的字符串模板。最后,双引号是为 JSON 和 HTML 保留的。