Javascript kaldırma ve genel kapsam bildirimi

Aug 21 2020

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

1 AbhishekJain Aug 21 2020 at 14:19

İ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.

1 Quentin Aug 21 2020 at 14:12

Örtülü globaller yok bir ima vardeyimi. Onları kaldırmak yok.