2011-02-10 2 views
1

Я хочу использовать следующий синтаксис в Javascript:Пробел перед точкой (вызов метода) разрешен в Javascript?

var bar = foo.replace(/really long regex/, something) 
      .replace(/another really long regex/, something) 
      .replace(/yet another really long regex/, something); 

, так как это (несколько) более читаемым, чем делать это на одной линии.

Это разрешено? Он отлично работает в Firefox, но я не могу найти ссылки на этот синтаксис в любом месте, и я не хочу позже узнавать, что есть какой-то обозреваемый браузер, где это не работает.

ответ

4

Да, Javascript игнорирует пробелы.

Хотя, если вы собираетесь игнорировать пробелы, вам нужно быть уверенным и использовать точки с запятой, чтобы закончить ваши выражения. Точки с запятой не требуются, но если они не используются, javascript использует возврат каретки для отдельных команд. Это может привести к непоследовательному поведению, если вы этого не ожидаете.

Я делал это много раз в своем javascript-коде, поскольку, когда я пишу довольно код, мне не нравится позволять ему выйти за пределы 80 символов.

Посмотрите на emcascript стандартной https://docs.google.com/viewer?url=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Ffiles%2FECMA-ST%2FECMA-262.pdf

терминаторов линии (что ваша озабоченность с) рассматриваются на странице 25 PDF (страница 15 печатается на листе). Весь раздел 7 посвящен форматированию, вы, вероятно, найдете определение того, почему он работает там (да, я ленив и не хочу читать весь раздел :)).

Надеюсь, что это поможет!

+0

Спасибо, что я думал, хотя я действительно боялся, что вставка с запятой может испортить это. Я подожду немного дольше для более авторитетного ответа, но в противном случае я одобрю этот ответ. – mscha

+0

@mscha Фактически рекомендуется помещать точки с запятой, когда вы заканчиваете выражение. Это позволяет вам позже использовать минимизатор кода, не запутав интерпретатор javascript. Ваш код легче читать (для целей отладки), но сведенный к минимуму код работает быстрее, так как для интерпретатора javascript требуется меньше времени для его чтения. – ehudokai

+0

@ehudokai: абсолютно, я всегда использую точки с запятой. Вопрос здесь: не будет ли какой-то неясный парсер Javascript вставить точку с запятой в * middle * моего выражения? – mscha

0

Да, я не смог найти документацию, но она действительна. В вашем случае вы можете перекочевать регулярные выражения, а не

1

Вы можете определенно сделать это, но я буду осторожен. Чтобы процитировать запись в википедии - «пробел в источнике JavaScript может напрямую влиять на семантику». См. JavaScript Syntax -Whitespace and Semicolons.

+0

Спасибо за ссылку. Я это видел, но он не говорит, разрешен ли мой пример. – mscha

Смежные вопросы