Почему точки с запятой не используются после операторов if/else?
Я понимаю, что хороший синтаксис использовать точки с запятой после всех операторов в Javascript, но кто-нибудь знает, почему операторы if/else не требуют их после фигурных скобок?
3 ответов
- точка с запятой используется для завершения одного оператора
-
{
и}
начать и закрыть группу операторов
в общем,if-else
должно сопровождаться либо утверждением, либо группой утверждений.
if-else
с последующим заявлением:
if (condition) statement;
if (condition); // followed by a statement (an empty statement)
if-else
затем группа высказываний:
if (condition) {
statement;
statement;
}
if (condition) {
// followed by a group of statements of zero length
}
if-else
должен заканчиваться на ;
если за ним следует один оператор. if-else
тут не заканчивается на ;
когда следует группа утверждений, потому что ;
используется для завершения одного оператора и не используется для завершения группы операторов.
реальный ответ заключается в том, что многие современные языки скопировали свой синтаксис из C, который имеет это свойство. JavaScript является одним из этих языков.
C разрешает блоки операторов
{ ... }
(которые не нуждаются в конечных точках с запятой) для использования там, где можно использовать операторы. Таким образом, вы можете использовать блоки операторов как предложения then - и else - без точек с запятой.
Если вы один оператор в предложении then - or else -, вам нужно завершите его точкой с запятой. Опять же, как и в C, с дополнительным поворотом JavaScript, который ; является необязательным в конце строки, если вставка не вызовет синтаксической ошибки.
потому что сами фигурные скобки являются символами завершения.
являются маркерами, которые заключают составной блок оператора и внутренне завершаются. Это как поставить точку в конце предложения, это сигнализирует парсеру, что мысль завершена.
будучи полностью уродливым, допустимо обернуть каждое утверждение В {} и опустить ;