Semicolon kwa Usalama katika IIFE
Acha sasa kazi yetu inayoitekelezeka mara moja isikue na alama ya jumlisha mwanzoni, bali imefungwa kwa mabano ya duara, kama hivi:
(function() {
console.log(1); // itatoa 1
})();
Acha kibadilishi num kimewekwa nje
ya kazi:
let num = 1; // semicolon ipo
(function() {
console.log(num); // itatoa 1
})();
Acha sasa tumesahau kuweka semicolon:
let num = 1
(function() {
console.log(num); //!! itatoa hitilafu
})();
Inabadilika kuwa msimbo kama huu utatoa hitilafu, kwa sababu JavaScript inachukua kazi yetu kuwa ni mwendelezo wa amri ya mstari wa kwanza.
Ili kuepuka matatizo kama haya, kabla ya kuitekeleza kazi mara moja daima ni muhimu kuweka semicolon, kama hivi:
let num = 1
;(function() {
console.log(num); // itatoa 1
})();
Inaonekana kwamba shida ni ya kubuniwa kwa kiasi fulani. Kiukweli, sivyo. Inawezekana kuna hali, kwamba ukurasa wako unaingiza scripti kadhaa kutoka kwa faili tofauti. Katika hali hii mwishoni mwa faili moja inaweza kukosa semicolon na hii moja kwa moja itasababisha shida, ikiwa faili ya pili inaanza na kuitekeleza mara moja kazi.
Kwa hivyo, daima-daima weka semicolon kabla ya kuitekeleza mara moja kazi, hata kama katika wakati huu una hakika kwamba hakuna shida. Zinaweza kutokea baadaye.
Tutumie yaliyosemwa hapo juu na tuitekeleze kazi mara moja, tukiweka mwanzoni semicolon:
;(function() {
console.log(1); // itatoa 1
})();
Amua, bila kukimbiza msimbo, nini kitatolewa kwenye konsole:
let str = 'str';
(function() {
console.log(1);
})();
Amua, bila kukimbiza msimbo, nini kitatolewa kwenye konsole:
let str = 'str'
(function() {
console.log(1);
})();