我们现在应该使用反引号来引用字符串文字吗?

时间:2017-03-29 06:59:09

标签: javascript

我已经开始讨论Javascript中的字符串文字的单个或双重qoutes(JSON除外),似乎选择一个或另一个纯粹是任意的,有两个澄清:

  • 对所有代码使用相同的约定(无var a="a", b='b')。
  • 您可以灵活地容纳原本需要逃避大量字符的文字,从而损害可读性(无its='it\'s'normal="the \"normal\" thing")。

但是我们现在有另一个qouting字符,即模板文字中使用的反引号,它本身在普通文本或代码中的使用频率低于其他两个,因此需要较少的转义:

youre = `You're so "normal"!`

在最多的情况下,人们需要在可能产生不需要的嵌入式表达的情况下使用美元符号。

我试着想出避免使用反引号作为编码标准的理由,取代其他两个。

  • 会不会影响性能?我猜不是真的(我试过测量但得到inconclusive results)。如果性能仅取决于要转义的字符数,则可以看到youre或带有换行符的文字等边缘情况的改进。
  • 输入速度较慢?这取决于您的键盘。在我的(西班牙语)中,双引号和单引号都在数字行中并且难以触及,双重要求我按Shift键,而反引号只是一个远离我的手指的键但需要按空格键,所以它是很难说它会适合我。
  • 浏览器兼容性?可能。但是时间可以解决它,并且在某些情况下它不相关,就像任何打算在Node.js中运行的东西一样。

是否有其他原因可能会阻止(或鼓励)人们在项目的编码标准中将字符串文字设置为qoute?

1 个答案:

答案 0 :(得分:0)

使用反引号进行字符串可以创建模板字符串。

const create = word => `Hello ${word}`

console.log(create("World")); // Hello World

因此,这是一种创建/插入字符串的更简洁方法。由于转换器/解释器会将其转换为类似:"Hello" + word,因此对性能的影响应取决于要组合的字符串数量和字符串的总长度。

如果您需要引用字符,无论您选择哪种“类型”字符串,都需要将它们转义:

console.log(```) // SyntaxError
console.log(`\``) // `

总而言之,模板字符串非常适合模板,所以如果你愿意,可以使用它们,但它不会有任何区别,当涉及到逃逸时,你必须逃避$标志,太。