Это меня смущало дольше всего.Я думал, что это просто культурная разница, и что все, кто жаловался на то, что вставка точки с запятой является худшей чертой языка, был идиот .Часто повторяемый пример из ответа NullUserException не поколебал меня, потому что, не обращая внимания на отступ, Python в этом случае ведет себя так же, как JavaScript.
Затем однажды я написал что-то расплывчато похожее на это:
alert(2)
(x = $("#foo")).detach()
Я ожидал, что это будет интерпретировано так:
alert(2);
(x = $("#foo")).detach();
На самом деле это интерпретировалось так:
alert(2)(x = $("#foo")).detach();
Теперь я использую точки с запятой.
JavaScript будет только 1 трактовать символ новой строки как точку с запятой в следующих случаях:
- Это синтаксическая ошибка, а не
- Новая строкамежду ключевым словом
throw
или return
и выражением. - символ новой строки находится между ключевым словом
continue
или break
и идентификатором. - символ новой строки находится между переменной иоператор постфикса
++
или --
.
Это приводит к таким случаям, когда поведение не соответствует ожидаемому.Некоторые люди 2 приняли соглашения, которые используют точки с запятой только в случае необходимости.Я предпочитаю следовать стандартному соглашению всегда использовать их, теперь, когда я знаю, что это не бессмысленно.
1 Я пропустил несколько мелких деталей, обратитесь к ECMA-262 5e Раздел 7.9 для точного описания.
2 Twitter Bootstrap является одним громким примером.