Я обсуждал с коллегой о JavaScript, глядя на некоторые фрагменты. Мы заметили, что эти фрагменты отсутствовали в ;
в конце инструкций. Мы все знаем, что JS интерпретируется правильно, даже если точка конца с запятой не показана в конце строки, но мне было интересно, влияет ли это на оценку производительности, поскольку это интерпретируемый язык.
Опускание точек с запятой влияет на производительность в JavaScript?
Ответ 1
Файл javascript с пробелами, полуколониями и комментариями более тяжелый. Это основное влияние.
Но вы кодер, и вы должны поддерживать код, поэтому это очень незначительное влияние гораздо менее важно, чем неблагоприятное для читаемости. И опустить точки с запятой означает, что вы знаете, когда можете их опустить. Но правила не так просты, и их изучение не стоит вашего времени.
Оставьте полуколоны там, где они есть, вы избежите ошибок.
И используйте minifier (например, Closure компилятор), чтобы создать более сжатый код для браузера, если вы действительно хотите иметь самый легкий код, Это его долг, а не ваш.
Ответ 2
Опускание точек с запятой в JS - это большие дебаты, но мы всегда должны придерживаться точки с запятой. Если вы говорите об эффективности, то при сохранении точки с запятой будет очень мало пользы.
Но все не только здесь. Помимо производительности есть одна большая вещь, которая должна быть осторожна.
Дуг Крокфорд очень хорошо объясняет необходимость точки с запятой в этой презентации:
JS Interpreter находит ошибку, добавляет точку с запятой и запускает все снова. Но не каждый раз он ставит точку с запятой на правильное место и веселые ошибки являются следствием. Вы всегда должны сделать точки с запятой и запустить js через инструменты тестирования, такие как JSLint.
Кроме этих точек с запятой, код более структурирован и делает его более чистым - кроме того, их присутствие позволяет некоторым разработчикам запутывать их код.
Надеюсь, это поможет вам.
Ответ 3
Ссылаясь на предоставленный тест: Это действительно не иллюстрирует разницу в производительности ASI vs non ASI. Эффективность, которая будет затронута, скорее всего, в токенизации. Интерпретатор или JIT не будут делать это для каждой итерации, но только один раз. Эффект, вероятно, будет заметен только при загрузке большой базы кода. Точка с запятой позволяет JIT или интерпретатору быстрее распознавать конец оператора, чем выводить его из следующих токенов.
Ответ 4
Небольшие различия в синтаксисе кода обычно очень мало влияют на производительность кода. процесс интерпретации строки кода очень эффективен и занимает небольшую часть времени, затрачиваемого фактически на запуск кода.
Неэффективный алгоритм или дополнительный сетевой вызов, например, вытягивание нескольких файлов .js, а не одного, оказывает гораздо большее влияние.