javascript - 模板文字中的换行符和字符串文字中的 '\' 之间有什么区别?

标签 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.

两者之间有性能差异吗?哪一个被认为是最佳实践?

我已经搜索过了。

更新:

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

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.

希望这能让事情变得清楚。

关于javascript - 模板文字中的换行符和字符串文字中的 '\' 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39601573/

相关文章:

javascript - 保护未指定的 Javascript 事件处理程序不被垃圾收集

javascript - 如何在 JavaScript 中获取键盘输入?

javascript - 在 HTTP 请求 AngularJS 之后将数据从工厂返回到 Controller

javascript - 这种似乎将 HTML 标签与 JavaScript 混合在一起的奇怪 JavaScript 语法是什么?

javascript - 如何在 webpack 构建期间转换 HTML 文档中的脚本标签?

javascript - 在 `state.tree` 中写入 `state.xxxReducer.tree` 而不是 `mapStateToProps` (react redux)

javascript - 自定义元素 getter/setter 在模块内部时不起作用

javascript - Fancybox 无法按预期工作

javascript - 在浏览器中加密 Cookie

javascript - 自定义字符串类