Javascript kaldırma ve genel kapsam bildirimi
Javascript'te, derleme aşaması tüm bildirimleri bulur ve uygun kapsamlarıyla ilişkilendirir.
DAVA 1
a = 2;
console.log(a);
Katı modda kullanılmazsa, pasajın gerçekte şu şekilde işlendiği varsayılır:
var a;
a = 2;
console.log(a);
Çıktı: 2
CASE2
bildirim console.log () altında gerçekleşirse
console.log(a);
var a = 2;
Burada 1. satırda: derleyici, bulunamazsa, kapsamındaki a'nın bildirimini kontrol edecek, genel kapsam bir tane atayacak ve aynı kod tekrar aynı varsayılacaktır.
var a;
console.log(a);
a = 2;
Çıktı: tanımsız // yorumlayıcı konsolu okurken değer atanmadığından
CASE3
console.log(a);
a = 2;
Çıktı: RefErr
Bu neden referans hatası veriyor ve tanımsız değil?
Yanıtlar
İlk iki durumunuza dikkatlice bakarsanız, her zaman değişkeni bildirmiş olursunuz ave JavaScript'te yalnızca bildirimler kaldırılır.
Bununla birlikte Case 3, değişkeninizde aasla belirtilmez, bu nedenle burada kaldırma mümkün değildir. Bununla birlikte a, kapsamda isme göre bir değişken yoktur ve dolayısıyla ReferenceError,.
ReferenceError açıklamasına bakarsanız , şunu okur:
ReferenceError nesnesi, var olmayan bir değişkene başvurulduğunda bir hatayı temsil eder.
Örtülü globaller yok bir ima vardeyimi. Onları kaldırmak yok.