Hoisting adalah perilaku default JavaScript untuk bergerak deklarasi ke atas.
Deklarasi JavaScript yang Mengangkat
Dalam JavaScript, variabel dapat dinyatakan setelah telah digunakan.
Dengan kata lain; variabel dapat digunakan sebelum telah dinyatakan.
Contoh 1 memberikan hasil yang sama seperti Contoh 2:
contoh 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
Cobalah sendiri " contoh 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
Cobalah sendiri " Untuk memahami hal ini, Anda harus memahami istilah "hoisting" .
Hoisting adalah perilaku default JavaScript untuk memindahkan semua deklarasi ke atas ruang lingkup saat ini (ke atas script saat ini atau fungsi saat ini).
JavaScript inisialisasi yang Tidak Mengangkat
JavaScript hanya kerekan deklarasi, tidak inisialisasi.
Contoh 1 tidak memberikan hasil yang sama seperti Contoh 2:
contoh 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
Cobalah sendiri " contoh 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
Cobalah sendiri " Apakah masuk akal bahwa y tidak terdefinisi dalam contoh terakhir?
Hal ini karena hanya deklarasi (var y), tidak inisialisasi (= 7) yang mengangkat ke atas.
Karena hoisting , y telah dinyatakan sebelum digunakan, tapi karena inisialisasi tidak mengangkat, nilai y tidak terdefinisi.
Contoh 2 adalah sama dengan menulis:
Contoh
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
Cobalah sendiri " Mendeklarasikan Variabel Anda Pada Top!
Hoisting adalah (untuk banyak pengembang) perilaku tidak diketahui atau diabaikan dari JavaScript.
Jika pengembang tidak mengerti hoisting , program mungkin mengandung bug (kesalahan).
Untuk menghindari bug, selalu menyatakan semua variabel pada awal setiap lingkup.
Karena ini adalah bagaimana JavaScript menafsirkan kode, itu selalu merupakan aturan yang baik.
JavaScript dalam mode yang ketat tidak memungkinkan variabel yang akan digunakan jika tidak dinyatakan.
Studi "use strict" di bab berikutnya.