在使用Node.js(服务器端)时,我想知道是否应该始终使用反引号(`)而不是常规的引号(“或')来使代码风格一致。保留不同类型的引号是否有任何特定原因?如果所有非占位符引号都转换为反引号,这会影响性能吗?
在使用Node.js(服务器端)时,我想知道是否应该始终使用反引号(`)而不是常规的引号(“或')来使代码风格一致。保留不同类型的引号是否有任何特定原因?如果所有非占位符引号都转换为反引号,这会影响性能吗?
反引号(back-tick)允许你使用字符串模板,例如:
var value = 4;
var str = `text with a ${value}`
// str will be : 'text with a 4'
关于使用"
和'
,我建议查看这篇帖子:https://dev59.com/12kw5IYBdhLWcg3wV5ID#9959952
2018年更新:在某些情况下,ES6字符串模板可能比字符串拼接更快。查看以下帖子获取一些具体的数据:
2020年更新:总的来说,当考虑使用哪种引号时,你不应该过于担心性能问题。尽管可能存在微小的差异,但正如许多人指出的那样,你最好优化代码而不是考虑使用哪个字符。话虽如此,这并没有真正回答一致性的问题。对我来说,我通常遵循Airbnb JavaScript风格指南。也就是说,字符串总是使用单引号(')声明,除非你需要构建一个字符串,然后你应该避免使用拼接,只使用带反引号(`)的字符串模板。最后,双引号留给JSON和HTML使用。
使用反引号或单引号创建字符串的性能差异是如此微小,以至于我认为您不应该考虑将其作为使用其中一个的原因。 这里有一些基本证据。
但是-我会建议不在非模板字符串中使用模板字符串,因为使用单引号时很明显不会发生模板化。如果我看到带有反引号的字符串-我会立即开始寻找将要替换什么或为什么使用它们。相比之下,单引号非常清晰明了。
我不认为它会影响性能-但我也不认为您应该“只是为了保持一致”而这样做。它并不一致,因为它是完全不同的构造-就像while
或for
循环一样。他们是不同的工具,适用于不同的任务。
反引号(``)被称为模板文字。它们是ES6的一部分。 不同之处在于:
var name = "world";
var greetES5 = 'Hello '+name;//using single quote
var greetES6 = `Hello ${name}`;//using ticks
您可以参考MDN 这里 了解更多信息。
x
=
\
test`和
x = 'test' (其中没有涉及变量转换)之间是否存在性能差异?如果没有区别,那最好在整个代码中始终使用反引号(
)以保持一致性和可维护性。 - Ulysses