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:
(function() {
console.log(1); // do të shfaqë 1
})();
Le të jetë ndryshorja num e përcaktuar jashtë
funksionit:
let 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:
let 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:
let 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:
;(function() {
console.log(1); // do të shfaqë 1
})();
Përcaktoni, pa ecur kodin, çfarë do të shfaqet në konsol:
let str = 'str';
(function() {
console.log(1);
})();
Përcaktoni, pa ecur kodin, çfarë do të shfaqet në konsol:
let str = 'str'
(function() {
console.log(1);
})();