2
var wrapped_string = "shouldn't this\
work?"

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

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

4

3 回答 3

7

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

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

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

例如,如果反斜杠后面有一个空格,则代码会产生错误,并且仅通过阅读代码不容易发现:

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

// an space after it, SyntaxError:
var str = "foo\ 
bar";
于 2011-01-13T20:15:21.180 回答
1

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

当你有一吨弦时,擒纵机构很好,我认为它比使用一吨+.

于 2011-01-13T20:16:16.450 回答
0

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

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

于 2011-09-02T16:10:25.127 回答