Hoisting

Hosting, JavaScript'te tanımlamaları en üste taşımak için varsayılan bir davranıştır. Bir kod yürütülürken, global bir yürütme bağlamı oluşturur: oluşturma ve yürütme. Oluşturma aşamasında, JavaScript değişken ve işlev tanımlamalarını sayfanın en üstüne taşır, bu da hoisting olarak bilinir.

// değişken hoisting
console.log(counter);
let counter = 1; // "ReferenceError: Cannot access 'counter' before initialization" hatası verir

Her ne kadar counter değişkeni bellekte mevcut olsa da değişken ilk değerini almadığı için hata veriyor. Bunun nedeni, counter değişkeninin burada sayfanın yukarısına çekilmesidir.

// function hoisting
const x = 20,
    y = 10;

let result = add(x,y); // ❌ Uncaught ReferenceError: add is not defined
console.log(result);

let add = (x, y) => x + y; 

Burada, add işlevi, global yürütme bağlamının oluşturulması aşamasında bellekte undefined ile başlatılır ve yukarı çekilir. Böylece, bir hata atılır.

results matching ""

    No results matching ""