В нескольких библиотеках JavaScript я видел эту запись в самом начале:
/**
* Library XYZ
*/
;(function () {
// ... and so on
Хотя мне вполне комфортно с синтаксисом «немедленно выполняемая функция»
(function(){...})()
Мне было интересно, для чего используется главная точка с запятой. Все, что я мог придумать, это то, что это страховка. То есть, если библиотека встроена в другой, глючный код, она служит в качестве «скачка скорости» последнего оператора, заканчивающегося здесь самым последним.
Есть ли у него другие функциональные возможности?
javascript
syntax
Boldewyn
источник
источник
Ответы:
Он позволяет безопасно объединить несколько файлов JavaScript в один, чтобы он быстрее обслуживался как один HTTP-запрос.
источник
(function(){...})()(function(){...})()
.На самом деле лучший ответ был дан в вопросе, поэтому я просто напишу это здесь для ясности:
;
Перед прямыми вызываемыми функциональными выражениями стоит ведущая строка, чтобы предотвратить ошибки при добавлении файла во время конкатенации к файлу, содержащему выражение, которое не заканчивается должным образом с помощью символа;
.Лучшая практика - заключать выражения в точки с запятой, но также использовать начальную точку с запятой в качестве гарантии.
источник
"\n"
с";\n"
не имеет никакого смысла.Источник:
JavaScript: Полное руководство, 6-е издание
источник
Это называется ведущей точкой с запятой.
Его основная цель - защитить себя от неправильного закрытия предыдущего кода, что может вызвать проблемы. Точка с запятой предотвратит это. Если предыдущий код был неправильно закрыт, то наша точка с запятой исправит это. Если он был правильно закрыт, то наша точка с запятой будет безвредной и не будет побочных эффектов.
источник
Ответ в одну строку - безопасно объединить несколько файлов JavaScript. Использование точки с запятой не вызывает проблем.
Предположим, у вас есть несколько функций:
IIFE 1
IIFE 2
При объединении это может выглядеть так:
Но если вы добавите точку с запятой перед функцией, она будет выглядеть так:
Таким образом, добавляя a
;
, он заботится о том, чтобы любое выражение не было правильно завершено.Пример 2
Предположим, у вас есть файл JavaScript с переменной:
Еще один файл JavaScript с некоторой функцией:
Теперь на конкатенации это будет выглядеть
С точкой с запятой это будет выглядеть так:
источник
Это хорошо, когда вы минимизируете код JavaScript. Это предотвращает непредвиденные синтаксические ошибки.
источник