Sobes.tech
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).