Pengangkatan JavaScript (dengan Contoh)

Dalam tutorial ini, anda akan belajar mengenai pengangkatan JavaScript dengan bantuan contoh.

Mengangkat dalam JavaScript adalah tingkah laku di mana fungsi atau pemboleh ubah boleh digunakan sebelum deklarasi. Sebagai contoh,

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

Program di atas berfungsi dan outputnya tidak akan ditentukan. Program di atas berkelakuan seperti

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

Oleh kerana ujian pemboleh ubah hanya dinyatakan dan tidak mempunyai nilai, undefinednilai diberikan kepadanya.

Sekiranya anda ingin mengetahui lebih lanjut mengenai pemboleh ubah, kunjungi Pembolehubah JavaScript.

Catatan : Dalam pengangkatan, walaupun nampaknya deklarasi telah naik dalam program, perkara sebenarnya yang berlaku adalah fungsi dan deklarasi pemboleh ubah ditambahkan ke memori semasa fasa penyusunan.

Mengangkat Pembolehubah

Dari segi pemboleh ubah dan pemalar, kata kunci vardinaikkan dan letdan consttidak membenarkan mengangkat.

Sebagai contoh,

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

Dalam contoh di atas, pemboleh ubah a digunakan sebelum menyatakannya. Dan program berfungsi dan memaparkan output 5. Program ini berperilaku seperti:

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

Walau bagaimanapun dalam JavaScript, inisialisasi tidak disokong. Sebagai contoh,

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

Pengeluaran

 tidak ditentukan

Program di atas berkelakuan seperti:

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

Hanya deklarasi yang dipindahkan ke memori dalam fasa kompilasi. Oleh itu, nilai pemboleh ubah a adalah undefinedkerana a dicetak tanpa memulakannya.

Selain itu, apabila pemboleh ubah digunakan di dalam fungsi, pemboleh ubah hanya diangkat ke bahagian 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);

Pengeluaran

 hello Rujukan Kesalahan Tidak Ditangkap: b tidak ditentukan

Dalam contoh di atas, pemboleh ubah b diangkat ke bahagian atas fungsi greetdan menjadi pemboleh ubah tempatan. Oleh itu b hanya boleh diakses di dalam fungsi. b tidak menjadi pemboleh ubah global.

Untuk mengetahui lebih lanjut mengenai pemboleh ubah tempatan dan global, kunjungi Skop Pembolehubah JavaScript.

Catatan : Dalam pengangkatan, deklarasi pemboleh ubah hanya dapat diakses ke ruang lingkup langsung.

Sekiranya pemboleh ubah digunakan dengan letkata kunci, pemboleh ubah tersebut tidak diangkat. Sebagai contoh,

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

Pengeluaran

 Kesalahan Rujukan Tidak Tercatat: Tidak dapat mengakses 'a' sebelum memulakan

Semasa menggunakan let, pemboleh ubah mesti dinyatakan terlebih dahulu.

Fungsi Mengangkat

Fungsi boleh dipanggil sebelum menyatakannya. Sebagai contoh,

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

Pengeluaran

 Hai, ada

Dalam program di atas, fungsi greetdipanggil sebelum menyatakannya dan program menunjukkan output. Ini disebabkan oleh pengangkatan.

Namun, ketika fungsi digunakan sebagai ekspresi , kesalahan terjadi kerana hanya deklarasi yang dikibarkan. Sebagai contoh;

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

Pengeluaran

 RujukanError yang Tidak Terperangkap: salam tidak ditentukan

Sekiranya vardigunakan dalam program di atas, kesalahannya adalah:

 TypeError Uncaught: salam bukan fungsi

Catatan : Secara amnya, mengangkat tidak dilakukan dalam bahasa pengaturcaraan lain seperti Python, C, C ++, Java.

Mengangkat boleh menyebabkan hasil yang tidak diingini dalam program anda. Dan yang terbaik adalah menyatakan pemboleh ubah dan fungsi terlebih dahulu sebelum menggunakannya dan elakkan daripada mengangkat.

Sekiranya pemboleh ubah, lebih baik digunakan letdaripada var.

Artikel menarik...