JavaScript Kaldırma


İçindekiler

    İçindekiler tablosunu göster


Kaldırma, JavaScript'in bildirimleri şuraya taşıma konusundaki varsayılan davranışıdır: tepe.


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

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
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
</script>

</body>
</html> 

Ö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

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
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
</script>

</body>
</html> 

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 betiğin veya geçerli işlevin en üstüne).


Let ve const Anahtar Kelimeler

let ve const ile tanımlanan değişkenler en üste çıkarılır ancak başlatılmamış.<p>Anlamı: Kod bloğu, bloğun farkındadır. değişkendir ancak bildirilinceye kadar kullanılamaz. <p>Bir let değişkeninin bildirilmeden önce kullanılması şu sonuçla sonuçlanacaktır: ReferenceError.

Değişken başlangıçtan itibaren "geçici ölü bölge"dedir bloğun ilan edilene kadar:

Örnek

carName = "Volvo";
let carName;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Hoisting</h2>
<p>With <b>let</b>, you cannot use a variable before it is declared.</p>
<p id="demo"></p>

<script>
try {
  carName = "Saab";
  let carName = "Volvo";
}
catch(err) {
  document.getElementById("demo").innerHTML = err;
}
</script>

</body>
</html>

Bir const değişkeninin bildirilmeden önce kullanılması bir sözdizimi hatasıdır, bu nedenle kod çalışmayacaktır.

Örnek

Bu kod çalışmayacak.

carName = "Volvo";
const carName;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Hoisting</h2>

<p>With <b>const</b>, you cannot use a variable before it is declared.</p>
<p>Try to remove the //.</p>

<p id="demo"></p>

<script>
carName = "Volvo";
//const carName;
document.getElementById("demo").innerHTML = carName;
</script>

</body>
</html>

JS Let/Const'ta let ve const hakkında daha fazla bilgi edinin.



JavaScript Başlatmaları Kaldırılmıyor

JavaScript yalnızca bildirimleri kaldırır, başlatmaları değil.

Örnek 1, aşağıdakiyle aynı sonucu vermez Örnek 2:

ö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

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
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

</script>

</body>
</html> 

Ö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

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var x = 5;  // Initialize x

elem = document.getElementById("demo");      // Find an element 
elem.innerHTML = "x is " + x + " and y is " + y;  // Display x and y

var y = 7;  // Initialize y
</script>

</body>
</html> 

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 beyan edilmiştir, ancak başlatmalar kaldırılmaz, y'nin değeri tanımsızdır.

Ö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 

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
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

</script>

</body>
</html> 

Değişkenlerinizi En Üstte Bildirin!

Kaldırma (birçok geliştirici için) bilinmeyen veya gözden kaçan bir davranıştır. JavaScript.

Bir geliştirici kaldırma işlemini anlamıyorsa programlarda hatalar (hatalar) bulunabilir.<p> Hataları önlemek için her zaman tüm değişkenleri başlangıçta bildirin. her kapsam.<p> JavaScript bu şekilde yorumladığı için kod, her zaman iyi bir kuraldır.

Katı modda JavaScript, değişkenlerin kullanılmasına izin vermez bildirilmedi.
Sonraki bölümde "katı kullanım" konusunu inceleyin.