【问题标题】:Which browsers support multi-line strings?哪些浏览器支持多行字符串?
【发布时间】:2012-11-28 06:50:22
【问题描述】:

哪些浏览器支持multi-line strings

"foo \
bar"

像往常一样,我不支持它的主要嫌疑人是 IE。 哪个IE版本最先支持?

【问题讨论】:

  • 哪些浏览器不支持?
  • 根据您链接到的帖子的最后评论,此功能在 ECMA-262 第 5 版中定义。从那里我猜维基百科是一个很好的参考 - en.wikipedia.org/wiki/ECMAScript#Dialects
  • 具体来说,IE是什么时候开始支持的? IE 7/8 支持吗?

标签: javascript string cross-browser


【解决方案1】:

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

注意:这种技术显然不在 符合浏览器标准;但是,当 在主要浏览器的所有当前版本中进行了测试。

  • JSLint 等一些在线工具不允许这样做
  • 多行字符串在 JavaScript 中可能很危险,因为如果您不小心在转义字符 (\) 和新行之间放置了一个空格,那么所有的地狱都会崩溃。 (@ripper234 评论)

多行字符串文字是disallowed by the Google Style Guide

【讨论】:

  • 有哪些浏览器标准?
  • 该资源已过期。 ECMAScript 第 5 版(2009 年发布)中指定了多行字符串。 (它在 section 7.8.4 中,以 LineContinuation 生产的形式出现。)
  • IE什么时候开始支持的? IE 7/8 支持吗?
  • 根据 browsershot,即使 IE 6 也可以。那么为什么 jshint 默认会发出警告呢?只是为了风格? browsershots.org/http://jsbin.com/ogefag/1#jsbin.com/ogefag/1
  • Multi-line strings can be dangerous in JavaScript because all hell breaks loose if you accidentally put a whitespace in between the escape character (\) and a new line. jshint.com/docs
【解决方案2】:

重音符号(反引号、反引号)字符的作用类似于引号,用于在 Firefox 和 Google chrome 中定义多行字符串,但在 Internet Explorer 11 中却没有。这些字符串称为 Template Literals,是ES6 规范。我猜测生成的换行序列是您的编辑器生成的,而不是解释 Javascript 代码的计算机所期望的。

例子:

var str=`This string
has three
lines.`;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多