Я думаю, что причина того, почему это воспринимается как ошибка, заключается в том, что это расширение синтаксиса было недавно стандартизировано в спецификации ECMAScript 5-го издания .
Хотя широко поддерживается в ECMAScriptВ реализации (которая является наиболее широко доступной реализацией) у вас нет никакой гарантии, что она будет работать или просто вызовет раннее исключение SyntaxError
.
Другая причина, по которой некоторые люди утверждают, что ее избегают, заключается в том, чтоесли у вас есть любой другой символ, который не является LineTerminator
, у вас будет SyntaxError
, даже в реализации ECMAScript 5.
Например, если после обратной косой черты у вас есть пробел, код будетвыдает ошибку, и ее нелегко обнаружить, просто прочитав код:
// works:
var str = "foo\
bar";
// an space after it, SyntaxError:
var str = "foo\
bar";