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!