Тачка зарез у безбедности у IIFE
Нека наша функција која се позива на месту сада не буде са знаком плус на почетку, већ омотана заградама, овако:
javascript(function() {
console.log(1); // исписаће 1
})();
Нека се променљива num дефинише изван
функције:
javascriptlet num = 1; // тачка зарез је постављена
(function() {
console.log(num); // исписаће 1
})();
Хајде сада да заборавимо да поставимо тачку зарез:
javascriptlet num = 1
(function() {
console.log(num); //!! даће грешку
})();
Испада да ће овакав код дати грешку, јер JavaScript нашу функцију восприма како наставак наредбе из првог реда.
Да би се избегли такви проблеми, пред позив функције на месту увек је неопходно ставити тачку зарез, овако:
javascriptlet num = 1
;(function() {
console.log(num); // исписаће 1
})();
Изгледа да је проблем помало извештачен. Заправо, није тако. Може се десити ситуација да на вашој страници буду укључене неколико скрипти из одвојених фајлова. У том случају на крају једног фајла може бити изостављена тачка зарез и то аутоматски доведе до проблема ако други фајл почиње позивом функције на месту.
Зато, увек-увек стављајте тачку зарез пред позив функције на месту, чак и ако сте тренутно сигурни да проблема неће бити. Они могу настати касније.
Применимо горе речено и позовимо функцију на месту, поставивши на почетку тачку зарез:
javascript;(function() {
console.log(1); // исписаће 1
})();
Одредите, без покретања кода, шта ће се исписати у конзолу:
javascriptlet str = 'str';
(function() {
console.log(1);
})();
Одредите, без покретања кода, шта ће се исписати у конзолу:
javascriptlet str = 'str'
(function() {
console.log(1);
})();