JavaScript’te değişkenler hakkında ilginç olan olaylardan biri ise, tanımladığınız değişkene daha önceki satırlardan rahatlıkla erişebilmenize olanak tanımasıdır. Bu kavrama hoisting (yukarı alma) denir. JavaScript’te tanımlanan değişkenler yorumlanırken tanımladığınız değişkenler fonksiyon veya ifadenin yukarısına alınarak yorumlanır. Yukarıya alınan değişkenler atandıkları değer yerine undefined değerini alır. Hatta bu değişkeni kullandıktan sonra tekrar tanımlarsanız, yine undefined sonucunu alırsınız.
/**
* Örnek 1
*/
console.log(x === undefined); // "true" yazar
var x = 3;
/**
* Örnek 2
*/
// undefined değeri alacak
var degiskenim = "değerim";
(function() {
console.log(degiskenim); // undefined
var degiskenim = "yerel değerim";
})();
Yukarıdaki örnek yorumlayıcılar tarafında aşağıdaki şekilde yorumlanır.
/**
* Örnek 1
*/
var x;
console.log(x === undefined); // "true" yazar
x = 3;
/**
* Örnek 2
*/
var degiskenim = "değerim";
(function() {
var degiskenim;
console.log(degiskenim); // undefined yazar
degiskenim = "yerel değerim";
})();
Hoisting ile ilgili sorunların yaşanmaması için, fonksiyonların içerisinde yer alan bütün değişken tanımlarını mümkün olduğunca en üstte tanımlanmalıdır. Değişken tanımlamanın en iyi yolu da zaten budur. Bu sayede kodun da okunabilirliliği artmış olur.
Kaynaklar : https://developer.mozilla.org


Cevapla
Want to join the discussion?Feel free to contribute!