【问题标题】:JavaScript Heredoc? Escape Newline: JSLint Bad Escapement?JavaScript Heredoc? Escape Newline:JSLint 错误的擒纵机构?
【发布时间】:2011-06-08 18:01:02
【问题描述】:
var wrapped_string = "shouldn't this\
work?"

JSLint 给出了错误的擒纵错误。

那么我们如何在 JavaScript 中做 heredoc 呢?我有一个很长的 HTML 字符串。

【问题讨论】:

  • JSLint 有很多带有模糊推理的任意规则。在这种情况下,多行字符串的错误可能很常见并且很容易被遗漏(因为许多语言允许没有转义的新行)。 Lint 可能希望您使用 "shouldn't this\n" + [LF not allowed in SO comments] "work?";

标签: javascript escaping newline jslint heredoc


【解决方案1】:

我认为这被视为错误的原因是因为此语法扩展最近在 ECMAScript 5th Edition Specification 上标准化。

虽然受到广泛支持,但在 ECMAScript 3 实现(这是最广泛可用的实现)上,您不能保证它会工作,或者只是导致早期的 SyntaxError 异常。

有些人主张避免使用它的另一个原因是,如果您有任何其他不是 LineTerminator 的字符,那么即使在 ECMAScript 5 实现上,您也会有 SyntaxError

比如反斜杠后面有一个空格,代码就会报错,而且看代码不容易发现:

// works:
var str = "foo\
bar";

// an space after it, SyntaxError:
var str = "foo\ 
bar";

【讨论】:

    【解决方案2】:

    JSLint 伤害你的感情,没有别的,试着在 jQuery 上运行它来看看。

    当你有很多弦时,擒纵机构很好,我认为它比使用大量 + 更干净。

    【讨论】:

      【解决方案3】:

      您可以通过 jslint.yml 启用 ECMA5 语法。这将全部转义换行符。

      es5: true # 如果允许 ECMAScript 5 语法,则为 true

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-27
        • 1970-01-01
        • 2020-11-14
        • 2011-05-21
        • 1970-01-01
        • 2017-09-24
        • 2014-06-25
        相关资源
        最近更新 更多