在node.js(服务器端)上工作,我想知道我是否应该一直使用所有反向标记(`)而不是常规引号(“或”),因为它会使代码保持一致。有没有为不同的事物保留不同类型的报价的具体原因。如果所有非替代报价都被转换为反向报价,它会影响业绩吗?
答案 0 :(得分:12)
反向标记允许您使用字符串模板,例如:
sides
for 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字符串模板可能比连接更快。看看以下文章中的一些硬数据:
答案 1 :(得分:8)
使用反引号或单引号创建字符串之间的性能差异会非常小,以至于我认为您不应该将其视为使用其中一个或另一个的理由。 Here is some basic evidence of that
然而 - 我会反对使用模板字符串作为非模板的字符串,因为当你使用不会发生模板化的单引号时它很清楚。如果我看到带有反引号的字符串 - 我会立即开始寻找将被替换的内容,或者为什么使用它们。相比之下,单引号非常明确。
我不认为它会影响性能 - 但我不认为你应该这样做“只是为了保持一致”。它不一致,因为它是一个完全不同的结构 - 与import random
def roll_dice(attempts,number_of_sides):
for i in range(attempts):
print(random.randint(1, number_of_sides))
print("thats all")
或while
循环相同。它们是用于不同工作的不同工具。
答案 2 :(得分:5)
返回刻度(``)称为模板文字。他们是ES6的一部分。 区别在于:
var name = "world";
var greetES5 = 'Hello '+name;//using single quote
var greetES6 = `Hello ${name}`;//using ticks
您可以参考MDN here了解更多信息。