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);
})();