Middle+
Bir var kullanımıyla kendini çağıran fonksiyon (IIFE) içeren bir kod var. Dışarıdan typeof a ve typeof b çağrıldığında konsolda ne gösterilir? Katı modda davranış nasıl değişir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir IIFE içinde var kullanarak değişkenler tanımlanmışsa, örneğin:
(function() {
var a = 10;
b = 20; // var olmadan
})();
console.log(typeof a); // "undefined"
console.log(typeof b); // "number"
var ile tanımlanan a değişkeni fonksiyon içinde yerel olup, dışarıdan erişilemez, bu yüzden typeof a "undefined" döner.
var, let veya const olmadan tanımlanan b değişkeni, non-strict modda, küresel bir değişken oluşturur. Bu nedenle, typeof b "number" döner.
Strict modda ('use strict';), tanımlanmamış bir değişkene değer atamaya çalışmak (b = 20;) bir ReferenceError hatası verir ve küresel değişken oluşturulmaz. Bu durumda, fonksiyon dışındaki her iki değişken de erişilebilir olmayacak ve typeof a ile typeof b "undefined" dönecek (veya bu hatadan önce hata fırlatılacaktır).