模板文字中的换行和''字符串字面值

What's the difference between line breaks in template literals and '' in string literals?

本文关键字:字符串 字面值 换行 文字      更新时间:2023-09-26

我正在阅读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.

两者之间是否存在性能差异?哪个被认为是最佳实践?

I have search 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.'; 

下面是我的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.