Jos*_*den 19 javascript string ecmascript-6 template-literals
有没有理由(性能或其他)不对javascript源文件中的所有字符串使用反引号模板文字语法?如果是这样,什么?
我应该更喜欢这个:
var str1 = 'this is a string';
Run Code Online (Sandbox Code Playgroud)
在这?
var str2 = `this is another string`;
Run Code Online (Sandbox Code Playgroud)
Ber*_*rgi 12
不使用它们的最重要原因是并非所有环境都支持ES6.
当然,这根本不会影响你,但仍然是:YAGNI.除非您需要插值,多行文字或未转义的引号和撇号,否则请勿使用模板文字.很多关于何时在JavaScript中使用双引号或单引号的论据?随身携带.与往常一样,保持代码库的一致性,并且只使用一个字符串文字样式,而不需要特殊字符串.
Tim*_*ann 10
在代码方面,没有特定的缺点。JS 引擎足够聪明,不会在字符串文字和没有变量的模板文字之间产生性能差异。
事实上,我什至可能会争辩说总是使用模板文字是好的:
您已经可以使用单引号或双引号来创建字符串。选择哪一个在很大程度上是任意的,你只需要坚持一个。但是,如果您的字符串包含您选择的字符串标记,则鼓励使用另一个引号,即如果您选择了',您仍然会使用"don't argue"代替'don\'t argue'。但是,反引号在普通语言和字符串中非常少见,因此您实际上很少需要使用其他字符串文字语法或使用转义码,这很好。
例如,您将被迫使用转义序列来获得she said: "Don't do this!"带有双引号或单引号的字符串,但在使用反引号时则不必这样做。
然而,这些都是非常微弱的优势。但还是没有,所以我主要使用模板文字。
一个真实但在我看来可以忽略的反对意见是必须支持不支持字符串文字的环境。如果你有这些,你就会知道并且不会问这个问题。