模板文字中的换行符与' \'之间的区别是什么?在字符串文字中?

时间:2016-09-20 18:44:44

标签: javascript ecmascript-6

我正在阅读ES2015规范中的模板文字,它允许您创建(除此之外)换行符,如下所示:

var brokenStr = `This is
    a broken
    string.`; //This is a broken string

我们也可以使用反斜杠\字符来破坏字符串文字。

var anotherBrokenStr = 'This is \
    also a broken \
    string.'; //This is also a broken string.

两者之间是否存在性能差异?这被认为是最佳做法?

我搜索了SO。

更新

当我输出如下时,我得到一行。

document.getElementById('logger').innerHTML = brokenStr;

当我使用document.write()时,我会在Chrome检查器中看到此内容:

This is     also a broken     string.

将空白缩小到浏览器/

中的单个空格

更新:更新:

模板文字似乎包含\n字符。那么,第一个例子与此之间是否有任何区别,或者只是语法糖?

var anotherBrokenStr = 'This is \\n
    also a broken \\n
    string.'; 

1 个答案:

答案 0 :(得分:3)

这里是我的Node.js REPL的输出,显示了两者之间的差异:

> `hello
... world`
'hello\nworld'
> 'hello\
... world'
'helloworld'

在第一种情况下,我们会在'hello''world'之间获得换行符。在第二种情况下,我们不会。

编辑:亲爱的主,你彻底迷茫了。



HTML doesn't

respect newlines.


It doesn't matter how many newlines



you put in between your lines.




HTML will still print it





as a single line.




希望能让事情变得清晰。