JavaScript kaldırma işlemini anlamaya çalışıyordum ve anladığım kadarıyla, kodun yürütülmesinden önce tüm değişken bildirimler için bellek alanı ayrılmıştır.JavaScript aynı değişkenin birden çok bildirimi için kaldırma
Tercümanın, aynı değişken için birden fazla bildirimde bulunması durumunda nasıl çalıştığını anlamak isterim. Aşağıdaki kodu düşünün:
console.log(a);
//first declaration
function a() {
console.log('hello');
}
//second declaration
var a = 2;
çıkış fonksiyonu beyanıdır:
function a() {
console.log('hello');
}
Yani, tercüman karşılaşır ilk deklarasyonu varsayıyorum hafızada saklanır biridir. Ancak, hiç beyanname sırasını değiştirerek: Aynı çıktı
console.log(a);
//first declaration
var a = 2;
//second declaration
function a() {
console.log('hello');
}
sonuçlar! Tercüman ilk bildirimi yok sayar ve ikinci beyanı hafızaya kaydeder. Bu neden oluyor? İkinci durumda çıkış undefined
olmalıdır?
function a() {
console.log('hello');
}
var a;
console.log(a);
a = 2;
nedenle yukarıdaki kod yürütülürken,
a
, başlangıçta fonksiyonunu atıfta ve bu
var a;
çizgi çalıştırılacaktır sonra olacak
a
orada tanımsız Kodunuz aşağıdaki gibi yorumlayıcı tarafından okunacak
böylece müteakip birden beyanlar dikkate alınmaz
? –@TarunDugar Evet, tam olarak. Önceden belirlenmiş değerler, bir değişken bildirimi ile tanımsız olarak değiştirilmez. –
Tamam, anladım! Teşekkürler. –