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:

javascript(function() {
  console.log(1); // itatoa 1
})();

Acha kibadilishi num kimewekwa nje ya kazi:

javascriptlet num = 1; // semicolon ipo

(function() {
  console.log(num); // itatoa 1
})();

Acha sasa tumesahau kuweka semicolon:

javascriptlet 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:

javascriptlet 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:

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

Amua, bila kukimbiza msimbo, nini kitatolewa kwenye konsole:

javascriptlet str = 'str';

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

Amua, bila kukimbiza msimbo, nini kitatolewa kwenye konsole:

javascriptlet str = 'str'

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