JavaScript Hoisting
- Önceki Sayfa JS Alanı
- Sonraki Sayfa JS Sıkı Mod
Üstte çıkarma (Hoisting), JavaScript'in tanımlamaları en üstüne çıkarması olan varsayılan davranıştır.
JavaScript tanımlamaları üstte çıkarılır
JavaScript'te, değişkeni kullanmadan önce onu tanımlayabilirsiniz.
Diyelim ki, değişkeni tanımlamadan önce kullanabilirsiniz.
Örnek 1 ileÖrnek 2 Sonuçlar aynıdır:
Örnek 1
x = 5; // 5'i x'e atama elem = document.getElementById("demo"); // Elementi bul elem.innerHTML = x; // Eleman içinde x'yi göster var x; // x'yi tanımla
Örnek 2
var x; // x'yi tanımla x = 5; // 5'i x'e atama elem = document.getElementById("demo"); // Elementi bul elem.innerHTML = x; // Eleman içinde x'yi göster
Bu noktayı anlamak için 'hoisting' terimini anlamak zorundasınız.
Hoisting, JavaScript'in tüm tanımlamaları mevcut etki alanının en üstüne çıkarması olan varsayılan davranıştır (mevcut betiği veya mevcut fonksiyonun en üstüne çıkarma).
let ve const anahtar kelimeleri
ile let
veya const
Tanımlanan değişkenler ve sabitler üstte çıkarılmaz!
Lütfen JS Let / Const let ve const hakkında daha fazla bilgi için burada okuyun.
JavaScript başlangıçları üstte çıkarılmaz
JavaScript sadece tanımlamaları değil, başlangıçları da üstte çıkarır.
Örnek 1 ileÖrnek 2 Sonuçlar aynı değil:
Örnek 1
var x = 5; // x'yi başlat var y = 7; // y'yi başlat elem = document.getElementById("demo"); // Elementi bul elem.innerHTML = x + " " + y; // x ve y'yi göster
Örnek 2
var x = 5; // x'yi başlat elem = document.getElementById("demo"); // Elementi bul elem.innerHTML = x + " " + y; // x ve y'yi göster var y = 7; // y'yi başlat
Son örnekteki y hala tanımlanmamış olabilir mi?
Bu, sadece tanımlama (var y) değil, başlangıç (=7) üstte çıkarıldığı için budur.
Hoisting nedeniyle, y kullanılmadan önce tanımlandı, ancak tanımlanmamış olarak yükseltildiği için y'nin değeri hala tanımsızdır.
Örnek 2 de aynı:
Örnek
var x = 5; // x'yi başlat var y; // y'yi beyan et elem = document.getElementById("demo"); // Elementi bul elem.innerHTML = x + " " + y; // x ve y'yi göster y = 7; // 7'yi y'ye atama yap
Değişkenlerinizi üstte beyan edin!
Hoisting (birçok geliştirici için) JavaScript'in bilinmeyen veya göz ardı edilen bir davranışıdır.
Hoisting'i anlamayan geliştiriciler, programlarının hatalar (bug) içerebilir.
Bugları önlemek için her zaman her alanın başında tüm değişkenleri beyan edin.
Bu, JavaScript'in kodu nasıl yorumladığını açıkladığı için bu iyi alışkanlığı sürdürün.
Sıkı moddaki JavaScript, tanımlanmamış olarak kullanılmayan değişkenlere izin vermez.
Bir sonraki bölümde öğrenin “use strict”。
- Önceki Sayfa JS Alanı
- Sonraki Sayfa JS Sıkı Mod