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

标签 javascript

<分区>

我一直在讨论 Javascript 中字符串文字的单引号或双引号(除了 JSON),似乎选择一个或另一个纯粹是任意的,有两个澄清:

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

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

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

最多,在会产生不需要的嵌入表达式的情况下,需要将美元符号留空。

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

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

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

最佳答案

对字符串使用反引号允许创建模板字符串。

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

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

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

无论您选择哪种类型的字符串,如果您需要其中的引号字符,您都需要对它们进行转义:

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

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

关于javascript - 我们现在应该使用反引号来引用字符串文字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43086467/

相关文章:

javascript - 如何让 Bootstrap 导航栏滑动过渡工作?

php、ajax、html 选择元素

javascript - Three.js 中的旋转 anchor

javascript - 彩色谷歌地图

javascript - 如何使用与 index.html 处于同一级别的 Javascript 读取随机文件夹结构

javascript - 从平面对象数组构建对象树数组

javascript - 错误 下拉列表验证错误 : mat-form-field must contain a MatFormFieldControl.

javascript - 显示相对于其父级顶部位置的 div

javascript - 如何从下拉列表中获取选择值的ID并将其发送到带有Ajax的php中的模式?

javascript - HTML 中的新标记和解析器