Показать сообщение отдельно
  #1 (permalink)  
Старый 27.06.2014, 09:13
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

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

Часто приводятся дебильные примеры, где все очевидно, например, ретурн

f=function(){
   return
   some
}

Эти примеры для идиотов. Лично я еще замечал, что ругань идет вот в таких случаях

1
(1+1)


Насколько я понимаю, парсер если видит на новой строке открывающуюся скобку, полагает по-дефолту, что это вызов функции, он тут орет, что 1 - это не функция. То есть, единственным случаем трактовки переноса строки не как разделителя, является вызов функции:

a=function(x){return x}
(1)
a//1

Я это решаю таким вот способом.

1
;(1+1)


По моим наблюдениям, это единственный случай неодназначности (ну, пример выше мы не будем считать, вещи подобного рода дебильно-очевидны, разница между expr x и expr; x)

Возможно я ошибаюсь, и хотелось бы увидеть другие случаи. А если их нет, может тогда перестать горлопанить о необходимости или желательности точек с запятой? Язык разработан таким образом, что расстановка точек с запятой не нужна. Автор языка не идиот, он знал что делал. Если бы он захотел сделать по-другому, он бы сделал.

Подытоживая:

1) для дебилов: выражение 1 и выражение 2 должно иметь разделитель, и не следует разделять <exp\ns1>. Примеры подоного рода, как, например, с return выше, мы не рассматриваем.

2) Вызов функции

Есть ли еще случаи?

UPD Выяснил еще 2 случая: квадратная скобка и слеш

Последний раз редактировалось foo, 27.06.2014 в 09:44.
Ответить с цитированием