JavaScript Kaldırma
Kaldırma, JavaScript'in bildirimleri en üste taşımaya yönelik varsayılan davranışıdır.
JavaScript Bildirimleri Kaldırıldı
JavaScript'te, bir değişken kullanıldıktan sonra bildirilebilir.
Başka bir deyişle; bir değişken bildirilmeden önce kullanılabilir.
Örnek 1 , Örnek 2 ile aynı sonucu verir :
örnek 1
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
var x; // Declare x
Örnek 2
var x; // Declare x
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
Bunu anlamak için "kaldırma" terimini anlamalısınız.
Kaldırma, JavaScript'in tüm bildirimleri geçerli kapsamın en üstüne (geçerli komut dosyasının veya geçerli işlevin en üstüne) taşımaya yönelik varsayılan davranışıdır.
let ve const Anahtar Kelimeler
let
ve ile tanımlanan değişkenler const
bloğun en üstüne kaldırılır, ancak başlatılmaz .
Anlamı: Kod bloğu değişkenin farkındadır, ancak bildirilinceye kadar kullanılamaz.
Bir let
değişkenin bildirilmeden önce kullanılması, bir
ReferenceError
.
Değişken, bloğun başlangıcından bildirilinceye kadar "geçici ölü bölge" içindedir:
Örnek
Bu, aşağıdakilerle sonuçlanacaktırReferenceError
:
carName = "Volvo";
let carName;
Bir const
değişkenin bildirilmeden önce kullanılması bir sözdizimi hatasıdır, bu nedenle kod çalışmayacaktır.
Örnek
Bu kod çalışmayacaktır.
carName = "Volvo";
const carName;
JS Let / Const'ta let ve const hakkında daha fazla bilgi edinin .
JavaScript Başlatma İşlemleri Kaldırılmadı
JavaScript, başlatmaları değil, yalnızca bildirimleri kaldırır.
Örnek 1 , Örnek 2 ile aynı sonucu vermiyor :
örnek 1
var x = 5; // Initialize x
var y = 7; // Initialize y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
Örnek 2
var x = 5; // Initialize x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
var y = 7; // Initialize y
Son örnekte y'nin tanımsız olması mantıklı mı?
Bunun nedeni, başlatmanın (=7) değil, yalnızca bildirimin (var y) en üste kaldırılmasıdır.
Kaldırma nedeniyle, y kullanılmadan önce bildirildi, ancak başlatmalar kaldırılmadığı için y'nin değeri tanımsız.
Örnek 2, yazmakla aynıdır:
Örnek
var x = 5; // Initialize x
var y; // Declare y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
y = 7; // Assign 7 to y
Değişkenlerinizi En Üstte Bildirin !
Kaldırma (birçok geliştirici için) JavaScript'in bilinmeyen veya gözden kaçan bir davranışıdır.
Bir geliştirici kaldırma işlemini anlamıyorsa, programlar hatalar (hatalar) içerebilir.
Hatalardan kaçınmak için, her zaman her kapsamın başında tüm değişkenleri bildirin.
JavaScript kodu bu şekilde yorumladığı için her zaman iyi bir kuraldır.
Katı modda JavaScript, bildirilmemişlerse değişkenlerin kullanılmasına izin vermez. Bir sonraki bölümde "katı kullanım"
konusunu inceleyin .