Пробелы перед точкой (вызов метода) разрешены в Javascript? - PullRequest
1 голос
/ 10 февраля 2011

Я хочу использовать следующий синтаксис в Javascript:

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

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

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

Ответы [ 3 ]

4 голосов
/ 10 февраля 2011

Да, 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 посвящен форматированию, вы, вероятно, найдете определение, почему оно там работает (да, я ленивый и не хочу читать весь раздел :)).

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

1 голос
/ 10 февраля 2011

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

0 голосов
/ 10 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...