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 шығарады
})();
Задание 1

Кодты істемеден, консольге не шығарылатынын анықтаңыз:

javascriptlet str = 'str';

(function() {
  console.log(1);
})();
Задание 2

Кодты істемеден, консольге не шығарылатынын анықтаңыз:

javascriptlet str = 'str'

(function() {
  console.log(1);
})();