Кропка з коскай для бяспекі ў IIFE
Хай цяпер наша функцыя, якая выклікаецца на месцы, будзе не з плюсам у пачатку, а абгорнута круглымі дужкамi, вось так:
(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);
})();