⊗jsPmFCPf 272 of 505 menu

Changamoto za IIFE katika JavaScript

Wacha tuangalie vipande viwili vya msimbo.

Cha kwanza:

let result = 1 +function() { return 2; }(); console.log(result);

Cha pili:

let result = 1; +function() { return 2; }(); console.log(result);

Vipande hivi viwili vya msimbo vinafanana karibu kabisa, lakki ukiwazindua - matokeo yatakuwa tofauti. Msimbo wa kwanza utaonyesha kwenye console nambari 3, na wa pili - nambari 1.

Kwa nini tofauti hii: yote inatokana na ukweli kwamba katika kesi moja kwenye mstari wa kwanza wa msimbo mwishoni hakuna alama ya nukta na mkato, na katika kesi ya pili - iko.

Unaweza kuuliza: inakuwaje, hata hivyo katika JavaScript alama ya nukta na mkato mwishoni wa amri sio ya lazima! Kweli hii sio kweli kabisa. Wacha tuchambue, nini kinatokea kweli.

Msimbo wa kwanza unaweza kuandikwa upya hivi:

let result = 1 + function() { return 2; }(); console.log(result); // itaonyesha 3

Sasa inakuwa wazi mara moja kwamba kwa moja imeongezewa matokeo ya kuitewa kazi haraka, yaani 2. Kwa hivyo matokeo ya mwisho yatakuwa 3.

Lakini ikiwa baada ya moja utaweka alama ya nukta na mkato, basi msimbo utaeleweka tofauti na kichambua msimbo:

// Amri ya kwanza: let result = 1; // Amri ya pili: +function() { return 2; }(); // Amri ya tatu: console.log(result); // itaonyesha 1

Yaani kuweka thamani kwenye kutofautisha na kuitewa kazi haraka zitakuwa amri tofauti. Na yote kwa sababu ya uwepo wa alama ya nukta na mkato!

Inabadilika kuwa katika kesi hii kuitewa kazi haraka hakufanyi chochote - tu inarudisha nambari 2 bure, ambayo haiathiri vibaya kutofautisha result.

Basi wacha tuchambue, na kwa nini kabisa tunaweza kutoweka alama ya nukta na mkato katika JavaScript. Wacha tufikiri tuna msimbo kama huu bila alama za nukta na mikato:

let result = 1 // kwenye result itaandikwa 1 let test = 2 // kwenye test itaandikwa 2

Unafanya kazi sawa, kwani kichambua msimbo kimeweka mwisho wa kila mstari alama ya nukta na mkato peke yake.

Lakini angalia msimbo kama huu:

let result = 1 + 2; // kwenye result itaandikwa 3

Sasa alama ya nukta na mkato mwishoni wa mstari wa kwanza haitawekwa otomatiki, kwani kichambua msimbo inaelewa kuwa amri ya mstari wa pili - ni sehemu ya amri ya mstari wa kwanza.

Lakini ikiwa sisi wenyewe tutaweka alama ya nukta na mkato - matokeo yatakuwa tofauti kabisa:

let result = 1; // kwenye result itaandikwa 1 + 2; // amri haifanyi chochote, wala hataitisha hitilafu

Inabadilika kuwa kichambua msimbo huweka peke yake alama ya nukta na mkato, tu ikiwa amri inayofuata sio sehemu ya ile ya awali.

Na sasa angalia msimbo huu:

let result = 1 +function() { return 2; }(); console.log(result);

Kwa hakika, mstari wa pili - ni mwendelezo tu wa amri ya mstari wa kwanza na kichambua msimbo huweki alama ya nukta na mkato otomatiki. Ndiyo maana, ikiwa sisi wenyewe tutaandika alama ya nukta na mkato mwishoni wa mstari wa kwanza - matokeo yatakuwa tofauti kabisa. Hii inaonyesha kuwa ni bora daima kuweka alama ya nukta na mkato katika sehemu zinazohitajika, ili kuepuka matatizo.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa