Кропка з коскай для бяспекі ў IIFE

Хай цяпер наша функцыя, якая выклікаецца на месцы, будзе не з плюсам у пачатку, а абгорнута круглымі дужкамi, вось так:

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