Mengangkat JavaScript (dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang mengangkat JavaScript dengan bantuan contoh.

Hoisting di JavaScript adalah perilaku di mana fungsi atau variabel dapat digunakan sebelum deklarasi. Sebagai contoh,

 // using test before declaring console.log(test); // undefined var test;

Program di atas berfungsi dan hasilnya tidak akan ditentukan. Program di atas berperilaku sebagai

 // using test before declaring var test; console.log(test); // undefined

Karena uji variabel hanya dideklarasikan dan tidak memiliki nilai, undefinednilai diberikan padanya.

Jika Anda ingin mempelajari lebih lanjut tentang variabel, kunjungi Variabel JavaScript.

Catatan : Dalam pengangkatan, meskipun tampaknya deklarasi telah dipindahkan ke dalam program, hal yang sebenarnya terjadi adalah bahwa deklarasi fungsi dan variabel ditambahkan ke memori selama fase kompilasi.

Variabel Mengangkat

Dalam hal variabel dan konstanta, kata kunci vardikibarkan dan letdan consttidak memungkinkan pengangkatan.

Sebagai contoh,

 // program to display value a = 5; console.log(a); var a; // 5

Dalam contoh di atas, variabel a digunakan sebelum mendeklarasikannya. Dan program bekerja dan menampilkan output 5. Program berperilaku sebagai:

 // program to display value var a; a = 5; console.log(a); // 5

Namun dalam JavaScript, inisialisasi tidak diangkat. Sebagai contoh,

 // program to display value console.log(a); var a = 5;

Keluaran

 tidak terdefinisi

Program di atas berperilaku sebagai:

 var a; console.log(a); a = 5;

Hanya deklarasi yang dipindahkan ke memori dalam fase kompilasi. Karenanya, nilai variabel a undefinedkarena a dicetak tanpa menginisialisasi.

Juga, ketika variabel digunakan di dalam fungsi, variabel hanya akan diangkat ke atas fungsi. Sebagai contoh,

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Keluaran

 hello Uncaught ReferenceError: b tidak ditentukan

Dalam contoh di atas, variabel b diangkat ke atas fungsi greetdan menjadi variabel lokal. Karenanya b hanya dapat diakses di dalam fungsi. b tidak menjadi variabel global.

Untuk mempelajari lebih lanjut tentang variabel lokal dan global, kunjungi Cakupan Variabel JavaScript.

Catatan : Saat mengangkat, deklarasi variabel hanya bisa diakses oleh lingkup langsung.

Jika sebuah variabel digunakan dengan letkata kunci, variabel itu tidak dikibarkan. Sebagai contoh,

 // program to display value a = 5; console.log(a); let a; // error

Keluaran

 ReferenceError Tidak Tertangkap: Tidak dapat mengakses 'a' sebelum inisialisasi

Saat menggunakan let, variabel harus dideklarasikan terlebih dahulu.

Fungsi Mengangkat

Sebuah fungsi bisa dipanggil sebelum mendeklarasikannya. Sebagai contoh,

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Keluaran

 Halo

Dalam program di atas, fungsi greetdipanggil sebelum mendeklarasikannya dan program menunjukkan outputnya. Ini karena pengangkatan.

Namun, ketika suatu fungsi digunakan sebagai ekspresi , kesalahan terjadi karena hanya deklarasi yang diangkat. Sebagai contoh;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Keluaran

 ReferenceError Tidak Tertangkap: salam tidak ditentukan

Jika vardigunakan dalam program di atas, kesalahannya adalah:

 TypeError yang tidak tertangkap: greet bukanlah sebuah fungsi

Catatan : Umumnya, pengangkatan tidak dilakukan dalam bahasa pemrograman lain seperti Python, C, C ++, Java.

Mengangkat dapat menyebabkan hasil yang tidak diinginkan dalam program Anda. Dan yang terbaik adalah mendeklarasikan variabel dan fungsi terlebih dahulu sebelum menggunakannya dan menghindari pengangkatan.

Dalam kasus variabel, lebih baik digunakan letdaripada var.

Artikel yang menarik...