Deklarasi JavaScript adalah Hoisted
Dalam JavaScript, sebuah variabel dapat dideklarasikan setelah digunakan.
Dengan kata lain; Sebuah variabel dapat digunakan sebelum telah diumumkan.
Contoh 1 memberikan hasil yang sama seperti Contoh 2:
Contoh 1
x = 5; // Tetapkan 5 sampai x
elem = document.getElementById ("demo"); // Temukan sebuah elemen
elem.innerHTML = x; // Tampilkan x di elemen
var x; // Deklarasikan x
Contoh 2
var x; // Deklarasikan x
x = 5; // Tetapkan 5 sampai x
elem = document.getElementById ("demo"); // Temukan sebuah elemen
elem.innerHTML = x; // Tampilkan x di elemen
Untuk memahami hal ini, Anda harus memahami istilah "mengangkat".
Mengangkat adalah perilaku default JavaScript untuk memindahkan semua deklarasi ke bagian atas ruang lingkup saat ini (ke bagian atas skrip saat ini atau fungsi saat ini).
Inisialisasi JavaScript Tidak Hoisted
JavaScript hanya mengungguli deklarasi, bukan inisialisasi.
Contoh 1 tidak memberikan hasil yang sama seperti Contoh 2:
Contoh 1
var x = 5; // Inisialisasi x
var y = 7; / / Inisialisasi y
elem = document.getElementById ("demo"); // Temukan sebuah elemen
elem.innerHTML = x + "" + y; // Tampilkan x dan y
Contoh 2
var x = 5; // Inisialisasi x
elem = document.getElementById ("demo"); // Temukan sebuah elemen
elem.innerHTML = x + "" + y; // Tampilkan x dan y
var y = 7; / / Inisialisasi y
Apakah masuk akal bahwa y tidak terdefinisi dalam contoh terakhir?
Hal ini karena hanya deklarasi (var y), bukan inisialisasi (= 7) yang diangkat ke atas.
Karena pengangkatan, y telah dideklarasikan sebelum digunakan, namun karena inisialisasi tidak dikibarkan, nilai y tidak terdefinisi.
Contoh 2 adalah sama dengan menulis:
Contoh
var x = 5; // Inisialisasi xDeklarasikan variabel Anda di Atas!
var y; // Deklarasikan y
elem = document.getElementById ("demo"); // Temukan sebuah elemen
elem.innerHTML = x + "" + y; // Tampilkan x dan y
y = 7; // Tetapkan 7 sampai y
Mengangkat adalah (untuk banyak pengembang) perilaku JavaScript yang tidak diketahui atau diabaikan.
Jika pengembang tidak mengerti pengangkatan, program mungkin berisi bug (kesalahan).
Untuk menghindari bug, selalu nyatakan semua variabel di awal setiap ruang lingkup.
Karena ini adalah bagaimana JavaScript menginterpretasikan kode, itu selalu merupakan aturan yang baik.
Out Of Topic Show Konversi KodeHide Konversi Kode