Ստորակետը IIFE-ում անվտանգության համար
Թող այժմ մեր անմիջապես կանչվող ֆունկցիան սկզբում գումարած չլինի, այլ փակվի կլոր փակագծերով, ահա այսպես.
(function() {
console.log(1); // կարտածի 1
})();
Թող num փոփոխությունը սահմանվի ֆունկցիայից
դուրս.
let num = 1; // ստորակետը դրված է
(function() {
console.log(num); // կարտածի 1
})();
Ենթադրենք, մենք մոռացանք դնել ստորակետ.
let num = 1
(function() {
console.log(num); //!! կտա սխալ
})();
Ստացվում է, որ նման կոդը կտա սխալ, քանի որ JavaScript-ը մեր ֆունկցիան ընկալում է որպես առաջին տողի հրամանի շարունակություն։
Նման խնդիրներից խուսափելու համար, ֆունկցիայի անմիջական կանչից առաջ միշտ անհրաժեշտ է դնել ստորակետ, ահա այսպես.
let num = 1
;(function() {
console.log(num); // կարտածի 1
})();
Կարող է թվալ, թե խնդիրը որոշ չափով արհեստական է։ Իրականում, դա այդպես չէ։ Կարող է լինել այնպիսի իրավիճակ, երբ ձեր էջում միացվում են մի քանի տարբեր ֆայլերից սկրիպտներ։ Այս դեպքում մի ֆայլի վերջում կարող է բաց թողնվել ստորակետը, և դա ավտոմատ կհանգեցնի խնդրի, եթե երկրորդ ֆայլը սկսվում է ֆունկցիայի անմիջական կանչով։
Հետևաբար, միշտ-միշտ դրեք ստորակետ ֆունկցիայի անմիջական կանչից առաջ, նույնիսկ եթե այս պահին վստահ եք, որ խնդիրներ չեն լինի։ Դրանք կարող են առաջանալ ավելի ուշ։
Կիրառենք վերը նշվածը և կանչենք ֆունկցիան անմիջապես՝ սկզբում դնելով ստորակետ.
;(function() {
console.log(1); // կարտածի 1
})();
Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում.
let str = 'str';
(function() {
console.log(1);
})();
Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում.
let str = 'str'
(function() {
console.log(1);
})();