JavaScript Heredoc? Побег Newline: JSLint Плохой побег? - PullRequest
2 голосов
/ 13 января 2011
var wrapped_string = "shouldn't this\
work?"

JSLint выдает ошибку неверного спуска.

Как мы тогда делаем heredoc в JavaScript? У меня длинная строка HTML.

Ответы [ 3 ]

7 голосов
/ 13 января 2011

Я думаю, что причина того, почему это воспринимается как ошибка, заключается в том, что это расширение синтаксиса было недавно стандартизировано в спецификации ECMAScript 5-го издания .

Хотя широко поддерживается в ECMAScriptВ реализации (которая является наиболее широко доступной реализацией) у вас нет никакой гарантии, что она будет работать или просто вызовет раннее исключение SyntaxError.

Другая причина, по которой некоторые люди утверждают, что ее избегают, заключается в том, чтоесли у вас есть любой другой символ, который не является LineTerminator, у вас будет SyntaxError, даже в реализации ECMAScript 5.

Например, если после обратной косой черты у вас есть пробел, код будетвыдает ошибку, и ее нелегко обнаружить, просто прочитав код:

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

// an space after it, SyntaxError:
var str = "foo\ 
bar";
1 голос
/ 13 января 2011

JSLint ранит ваши чувства, больше ничего, попробуйте запустить его на jQuery, чтобы увидеть это.

Спуск в порядке, когда у вас тонна струн, я считаю, что она чище, чем тонна +.

0 голосов
/ 02 сентября 2011

Вы можете включить синтаксис ECMA5 через jslint.yml. Это все ускользнет от новой строки.

es5: true # true, если синтаксис ECMAScript 5 должен быть разрешен

...