Hoisting Pemrograman JavaScript

Naikkan (Hoisting) adalah perilaku baku JavaScript untuk memindahkan deklarasi ke atas.

Deklarasi JavaScript akan diangkat

Di JavaScript, dapat dideklarasikan variabel setelah digunakan.

Artinya, dapat digunakan sebelum deklarasi variabel.

Contoh 1 DenganContoh 2 Hasilnya sama:

Contoh 1

x = 5; // Berikan nilai 5 ke x
elem = document.getElementById("demo"); // Cari elemen
elem.innerHTML = x;                     // Tampilkan x di elemen
var x; // Deklarasikan x

Coba Sendiri

Contoh 2

var x; // Deklarasikan x
x = 5; // Berikan nilai 5 ke x
elem = document.getElementById("demo"); // Cari elemen
elem.innerHTML = x;                     // Tampilkan x di elemen

Coba Sendiri

Untuk memahami hal ini, Anda harus memahami istilah "hoisting".

Hoisting adalah perilaku baku JavaScript untuk naikkan semua deklarasi ke puncak lingkungan saat ini (naikkan ke puncak skrip saat ini atau fungsi saat ini).

kata kunci let dan const

dengan let atau const Variabel yang dideklarasikan dan konstanta tidak akan diangkat!

Silakan JS Let / Const Baca lebih banyak tentang let dan const di sini.

Inisialisasi JavaScript tidak akan naikkan

JavaScript hanya naikkan deklarasi, bukan inisialisasi.

Contoh 1 DenganContoh 2 Hasilnya tidak sama:

Contoh 1

var x = 5; // Inisialisasi x
var y = 7; // Inisialisasi y
elem = document.getElementById("demo"); // Cari elemen
elem.innerHTML = x + " " + y;           // Tampilkan x dan y

Coba Sendiri

Contoh 2

var x = 5; // Inisialisasi x
elem = document.getElementById("demo"); // Cari elemen
elem.innerHTML = x + " " + y;           // Tampilkan x dan y
var y = 7; // Inisialisasi y 

Coba Sendiri

Apakah masih masuk akal jika y di contoh terakhir masih belum terdefinisi?

Karena hanya deklarasi (var y) yang diangkat ke atas, bukan inisialisasi (=7).

Karena hoisting, y sudah dideklarasikan sebelum digunakan, tetapi karena belum diangkat untuk inisialisasi, nilai y tetap belum ditentukan.

Contoh 2 juga sama:

Contoh

var x = 5; // Inisialisasi x
var y;     // Deklarasikan y
elem = document.getElementById("demo"); // Cari elemen
elem.innerHTML = x + " " + y;           // Tampilkan x dan y
y = 7;    // Berikan nilai 7 kepada y

Coba Sendiri

Deklarasikan variabel Anda di atas!

Hoisting (untuk banyak pengembang) adalah perilaku yang tak dikenal atau diabaikan dalam JavaScript.

Jika pengembang tidak memahami hoisting, program mungkin mengandung bug (kesalahan).

Untuk menghindari bug, selalu deklarasikan semua variabel di awal lingkungan.

Karena hal ini adalah cara penggalian kode JavaScript, jadilah gaya yang bagus.

Mode kertas keras JavaScript tidak mengijinkan penggunaan variabel tanpa pemberitahuan terlebih dahulu.

Silakan belajar di bab berikutnya “use strict”。