哪些浏览器支持多行字符串?

6

哪些浏览器支持多行字符串

"foo \
bar"

通常情况下,我怀疑不支持它的浏览器是IE。 哪个版本的IE是第一个支持它的版本?


7
哪些浏览器不支持它? - PeeHaa
2
根据您链接的帖子上的最后一条评论,这种能力是在ECMA-262第5版中定义的。从那里开始,我猜维基百科是一个很好的参考资料 - http://en.wikipedia.org/wiki/ECMAScript#Dialects。 - Lix
具体来说,IE 从什么时候开始支持它?IE 7/8 支持它吗? - ripper234
2个回答

13

所有主流浏览器的当前版本都支持多行字符串。

注意:这种技术显然不符合浏览器标准;然而,在测试了所有主流浏览器的当前版本后,它可以正常工作。

  • 一些在线工具,如JSLint,不允许使用它
  • 在JavaScript中,多行字符串可能很危险,因为如果您意外地在转义字符(\)和新行之间放置了一个空格,那么一切都会失控。 (@ripper234评论)

Google样式指南不允许使用多行字符串文字


使用哪些浏览器标准? - Šime Vidas
4
IE是什么时候开始支持它的?IE 7/8是否支持它? - ripper234
2
根据browsershot的结果,即使IE6也支持。那么jshint为什么默认会警告这一点呢?只是为了风格吗?http://browsershots.org/http://jsbin.com/ogefag/1# http://jsbin.com/ogefag/1 - ripper234
2
JavaScript 中的多行字符串可能很危险,因为如果您在转义字符(\)和新行之间意外放置空格,则会出现混乱。http://www.jshint.com/docs/ - ripper234
@Ripper,这种权宜之计现在已经出现在文档中了:http://jshint.com/docs/options/#multistr - Protector one
显示剩余2条评论

2
重音符号(反引号、重音符号)字符在Firefox和Google Chrome中的Javascript中像引号一样工作,用于定义多行字符串,但在Internet Explorer 11中不起作用。这些字符串称为模板字面量,是ES6规范的一部分。我猜测生成的换行序列是您的编辑器生成的,而不是解释Javascript代码的计算机所期望的。
var str=`This string
has three
lines.`;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接