Pika dhe pikëpresje për siguri në IIFE

Le të jetë tani funksioni ynë që thirret në vend jo me plus në fillim, por i mbështjellë me kllapa të rrumbullakëta, si këtu:

javascript(function() {
  console.log(1); // do të shfaqë 1
})();

Le të jetë ndryshorja num e përcaktuar jashtë funksionit:

javascriptlet num = 1; // pika dhe pikëpresja është vendosur

(function() {
  console.log(num); // do të shfaqë 1
})();

Le të supozojmë tani që kemi harruar të vendosim pikëpresjen:

javascriptlet num = 1

(function() {
  console.log(num); //!! do të japë një gabim
})();

Rezulton se kodi i tillë do të japë një gabim, pasi JavaScript e percepton funksionin tonë si vazhdim të komandës së rreshtit të parë.

Për të shmangur probleme të tilla, përpara thirrjes së funksionit në vend është e nevojshme të vendoset gjithmonë pika dhe pikëpresja, si këtu:

javascriptlet num = 1

;(function() {
  console.log(num); // do të shfaqë 1
})();

Duket se problemi është disi i ndërtuar. Në fakt, nuk është kështu. Mund të ketë një situatë të tillë që në faqen tuaj të lidhen disa skripte nga skedarë të veçantë. Në këtë rast, në fund të një skedari mund të hiqet pika dhe pikëpresja dhe kjo automatikisht do të çojë në problem nëse skedari i dytë fillon me thirrjen e funksionit në vend.

Prandaj, gjithmonë-gjithmonë vendosni pikëpresjen përpara thirrjes së funksionit në vend, edhe nëse jeni të sigurt në këtë moment që nuk do të ketë probleme. Ato mund të lindin më vonë.

Le të zbatojmë sa më sipër dhe të thërrasim funksionin në vend, duke vendosur në fillim pikëpresjen:

javascript;(function() {
  console.log(1); // do të shfaqë 1
})();
Задание 1

Përcaktoni, pa ecur kodin, çfarë do të shfaqet në konsol:

javascriptlet str = 'str';

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

Përcaktoni, pa ecur kodin, çfarë do të shfaqet në konsol:

javascriptlet str = 'str'

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