Sobes.tech
Middle+

var istifadə edilən öz-çağıran funksiya (IIFE) olan kod var. Konsolda typeof a və typeof b çağırıldıqda nə göstəriləcək? Ciddi rejimdə davranış necə dəyişəcək?

sobes.tech Süni İntellekt

AI-dan cavab

İçində IIFE daxilində dəyişənlər var ilə elan olunubsa, məsələn:

(function() {
  var a = 10;
  b = 20; // var olmadan
})();

console.log(typeof a); // "undefined"
console.log(typeof b); // "number"

var ilə elan olunan a dəyişəni funksiyanın daxilində yerli və xaricdən əlçatan deyil, ona görə də typeof a "undefined" qaytaracaq.

var, let və ya const olmadan elan olunan b dəyişəni, qeyri-sert rejimdə, qlobal dəyişən yaradır. Buna görə də, typeof b "number" qaytaracaq.

Qatı rejimdə ('use strict';), qeyri-elan olunmuş dəyişənə dəyər təyin etməyə cəhd (b = 20;) ReferenceError xətası ilə nəticələnəcək və qlobal dəyişən yaradılmayacaq. Beləliklə, funksiyadan kənarda hər iki dəyişən əlçatan olmayacaq və typeof atypeof b "undefined" qaytaracaq (və ya bu səhv əvvəlcədən atılacaq).