Akhir-akhir ini, saya sedang mempelajari Scope dalam Javascript. Saya ingin tahu apakah pengangkatan secara otomatis dilakukan pada waktu kompilasi atau pada saat mengeksekusi kode (waktu berjalan). Jika tidak pada saat dijalankan maka saya punya pertanyaan lain apakah auto-hoisting akan memperlambat kinerja program Javascript.

something = a(); 
function a(){
 console.log("hoisting");
 return 10;
}
var something; 

Haruskah kita menggunakan pengangkatan manual atau lebih baik menggunakan pengangkatan otomatis?

4
Subato Patnaik 16 Januari 2021, 11:05

2 jawaban

Seperti yang saya tahu, Tidak ada masalah kinerja. Inisialisasi sedang dilakukan dalam waktu kompilasi. Jadi, tidak masalah Anda menginisialisasi di atas atau di bawah, Mesin JS akan membuat referensi dalam waktu kompilasi.

TAPI

Jika Anda lupa menginisialisasi di bagian bawah, Ini akan diinisialisasi sebagai undefined secara default. Karena mengangkat, dianggap sebagai praktik untuk mendeklarasikan functions atau variables di bagian atas cakupannya masing-masing.

JavaScript: Apa itu Mengangkat? (Disarankan)

4
BadPiggie 16 Januari 2021, 08:19

Itu tidak dilakukan pada waktu berjalan. Itu dalam proses kompilasi. Sehingga tidak memperlambat kinerja. Tepat sebelum kode dieksekusi, kompilator memindai semua deklarasi variabel dan fungsi dan mengalokasikannya ke dalam memori.

2
Harney 16 Januari 2021, 08:23