var
ile bildirilen bir değişkenin kapsamı uyaracaktır
var a = 1;
function b() {
a = 10;
function m() {}
}
b();
alert(a);
beyan edildiği bütün fonksiyonudur, bu beyanı noktasında başlamaz. Genellikle variable declaration hoisting olarak tanımlanır ve tüm değişken bildirimlerin işlev başlangıcına doğru bir hareket olarak görülebilir. İşlev tanımları için, hem bildirim hem de "görevlendirme" birlikte taşınır.
function b() {
a = 10;
function a() {}
}
yeni değişken a
beyan anlamına gelir ve a = 10
deyimi sadece dahili değişken a
değil, dış bir değiştirir
function b() {
var a = function() {};
a = 10;
}
eşdeğerdir. Dahili değişkenin a
dışını gölgelediğini söylüyoruz.
İkinci durumda, iç kapsamda a
değişkeninin olmadığı, yani harici olanın kullanıldığı ve değiştirildiği anlamına gelir (bir değişken ararken, iç kapsamdan kapama zincirini izleyen en dıştaki birine gidersiniz) .
Arrgh, bu örnek, sık kullandığınız arama motoruna tam kodu koyabileceğiniz ve faydalı sonuçlar alabileceğiniz çok yaygındır… – Bergi