offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmFCPS 271 of 503 menu

Точка с запятой для безопасности в IIFE

Пусть теперь наша вызывающаяся на месте функция будет не с плюсом в начале, а обернута круглыми скобками, вот так:

(function() { console.log(1); // выведет 1 })();

Пусть переменная num задается снаружи функции:

let num = 1; // точка с запятой стоит (function() { console.log(num); // выведет 1 })();

Пусть теперь мы забыли поставить точку с запятой:

let num = 1 (function() { console.log(num); //!! выдаст ошибку })();

Получается, что такой код выдаст ошибку, так как JavaScript воспринимает нашу функцию как продолжение команды первой строки.

Чтобы избежать таких проблем, перед вызовом функции на месте всегда необходимо ставить точку с запятой, вот так:

let num = 1 ;(function() { console.log(num); // выведет 1 })();

Кажется, что проблема несколько надуманна. На самом деле, это не так. Может быть такая ситуация, что у вас на странице подключаются несколько скриптов из отдельных файлов. В этом случае в конце одного файла может быть опущена точка с запятой и это автоматически приведет к проблеме, если второй файл начинается с вызова функции на месте.

Поэтому, всегда-всегда ставьте точку с запятой перед вызовом функции на месте, даже если вы на данный момент уверены, что проблем не будет. Они могут возникнуть потом.

Применим сказанное выше и вызовем функцию на месте, поставив в начале точку с запятой:

;(function() { console.log(1); // выведет 1 })();

Определите, не запуская код, что выведется в консоль:

let str = 'str'; (function() { console.log(1); })();

Определите, не запуская код, что выведется в консоль:

let str = 'str' (function() { console.log(1); })();
enru