Зачем использовать точку с запятой?
Есть ли какие-либо причины, помимо субъективного зрительного восприятия и случаев, когда у вас несколько операторов в одной строке, использовать точку с запятой в конце инструкций в JavaScript?
Похоже, что существует множество доказательств того, что использование точек с запятой является весьма необязательным и требуется только в немногих конкретных случаях.
Ответы
Ответ 1
Похоже, что существует очень мало причин или, по сути, крайних случаев, когда нужно использовать точки с запятой.
http://aresemicolonsnecessaryinjavascript.com/ < - теперь это отключено, используйте
https://github.com/aresemicolonsnecessaryinjavascript/aresemicolonsnecessaryinjavascript.github.com
Ответ 2
Потому что JavaScript делает неприятные вещи для вас, когда он догадывается, где положить точки с запятой. Лучше быть явным и позволить интерпретатору точно знать, что вы имели в виду, чем позволить догадку идиот от вашего имени.
Литература:
... и количество тысяч.
Ответ 3
Поскольку
- Отладка тонких ошибок, возникающих, когда вы этого не делаете, пустая трата времени, которую вы могли бы потратить на то, чтобы сделать что-то классное.
- Это дает яснее кому-то, поддерживающему код позже, что вы намерены
- Не все разработчики кода хорошо понимают правила автоматической установки, чтобы оставить код без них.
- Оставляя их, полагаются на все инструменты, которые обрабатывают код JavaScript в вашей цепочке ссылок, получая правильные правила (например, некоторые minifiers/упаковщики/компрессоры не работают, включая Crockford
jsmin
, который сломает код, который использует ASI в некоторых местах)
Ответ 4
Если вы спросили, потому что вы пришли из фона Python: разница:
-
в Python вы не должны заканчивать строки ничем, но разрешено использовать точку с запятой, если вы должны
-
в JavaScript вы должны заканчивать строки точкой с запятой, но разрешены (PDF, стр. 26, пункт 7.9) до опустите его, если он однозначно
Ответ 5
Как Дуглас Крокфорд предлагает -
Положите a; (точка с запятой) в конце каждого простого утверждения. Обратите внимание, что оператор присваивания, который назначает литерал функции или литерал объекта, все еще является оператором присваивания и должен заканчиваться точкой с запятой.