Middle+
IIFE менен var колдонуп, сырттан a жана b үчүн typeof чакырганда консольдо эмне чыгат? Катуу режимде жүрүм-турум кандай өзгөрөт?
sobes.tech AI
AIден жооп
Эгер ички IIFE ичинде өзгөрмөлөр var менен жарыяланган болсо, мисалы:
(function() {
var a = 10;
b = 20; // varсыз
})();
console.log(typeof a); // "undefined"
console.log(typeof b); // "number"
var менен жарыяланган a өзгөрмөсү функциянын ичинде жергиликтүү жана сырттан жеткиликтүү эмес, ошондуктан typeof a "undefined" болот.
var, let же const жок эле жарыяланган b өзгөрмөсү, нострикт режимде, глобалдык өзгөрмө түзөт. Ошондуктан, typeof b "number" болот.
Катуу режимде ('use strict';), белгиленбеген өзгөрмөгө маанини берүү аракеті (b = 20;) ReferenceError катага алып келет, жана глобалдык өзгөрмө түзүлбөйт. Ошентип, функциянын сыртында эки өзгөрмө да жеткиликтүү эмес, жана typeof a жана typeof b "undefined" болот (же алдан алдын ката чыгарышы мүмкүн).