Meningkatkan dalam JavaScript – beragampengetahuan – Beragampengetahuan
Dalam JavaScript, Mengangkat berarti deklarasi variabel atau fungsi diangkat ke atas cakupannya masing-masing sebelum dieksekusi. Artinya suatu variabel atau fungsi dapat digunakan sebelum didefinisikan.
Contents
Gunakan var untuk mempromosikan variabel
Perilaku boosting dapat diamati dengan mengambil contoh variabel yang dideklarasikan dengan bantuan perintah berikut var. Perhatikan contoh kode berikut:
console.log(myVar); // Output: undefined
var myVar = 10;
console.log(myVar); // Output: 10
Agak naif, mungkin orang berpikir console.log(myVar) sebelum mendeklarasikannya akan menimbulkan kesalahan karena myVar Belum diumumkan. Namun karena pengibaran, deklarasi myVar Pindah ke bagian atas cakupan dan kode sebelumnya akan berjalan tanpa kesalahan apa pun. Ini berperilaku seolah-olah kode itu ditulis seperti ini:
var myVar;
console.log (myVar); // Output: undefined
myVar = 10;
console.log (myVar); // Output: 10
Hanya mendeklarasikan variabel myVar dipromosikan, ditugaskan myVar = 10 TIDAK. Jadi ketika variabel dicatat untuk pertama kalinya, variabel tersebut terbaca undefined Karena walaupun nama variabel sudah dideklarasikan, namun belum diberi nilai.
masalah var
Pertanyaan terkait dengan var adalah bahwa cakupan variabelnya tidak terbatas pada blok dimana variabel tersebut dideklarasikan. Hal ini dapat menyebabkan beberapa perilaku yang mungkin tidak diinginkan saat menggunakan loop atau struktur kontrol lainnya; if penyataan.
if (true) {
var testVar = "I am inside the block";
}
console.log (testVar); // Output: "I am inside the block"
Meskipun testVar Dideklarasikan di dalam “blok if”, dapat digunakan secara eksternal. Seperti disebutkan di atas, var Tidak memiliki cakupan tingkat blok, tetapi memiliki cakupan tingkat fungsi atau global.
Mengangkat menggunakan let dan const
Untuk mengatasi permasalahan yang datang varTermasuk JavaScript let Dan const Di ES6. Kata kunci ini juga diangkat, namun dengan satu perbedaan yang signifikan: implementasi dilakukan ketika variabel diperlukan dalam program, dan hanya ketika pernyataan deklarasinya dipenuhi dalam program. Sebelumnya, variabel berada di zona mati sementara (TDZ), dan pembacaannya akan menghasilkan Reference Error.
Mari kita lihat contohnya:
console.log (myLet); // Reference Error: Cannot access 'myLet' before initialization
let myLet = 5;
dalam hal ini, let dipindahkan ke bagian atas blok; namun, itu hanya dideklarasikan tetapi tidak diberi nilai apa pun hingga baris tersebut let myLet = 5 Eksekusi. Ini berarti bahwa ketika suatu variabel berada dalam cakupan (yaitu telah dideklarasikan), variabel tersebut tidak dapat digunakan sebelum memberikan nilai padanya.
Perilaku yang sama berlaku untuk const:
console.log (myConst); // Reference Error: Cannot access 'myConst' before initialization
const myConst = 10;
Di Sini, const Variabel dideklarasikan tetapi tidak ditentukan, jadi jika skrip mencoba menggunakannya sebelum ditentukan, variabel tersebut akan dibuang Reference Error.
Menggunakan let dan const untuk menentukan cakupan blok
Jika cakupan suatu variabel harus dibatasi pada satu blok, let Dan const Direkomendasikan.
If (true) {
let blockVar = "I am inside the block";
}
console.log (blockVar); // Reference Error: blockVar is not defined
Dalam hal ini, kami hanya dapat merujuk pada blockVar Dalam blok yang awalnya dideklarasikan. Segera setelah Anda mencoba mengaksesnya di luar blok if, hasilnya akan seperti ini Reference Error.
Peningkatan fungsi
Fungsi dalam JavaScript juga diangkat; namun, ada perbedaan dalam cara terjadinya pengangkatan antara deklarasi fungsi dan ekspresi fungsi.
deklarasi fungsi
Dalam kasus deklarasi fungsi, nama dan isi fungsi akan diangkat ke tingkat teratas cakupan. Jadi Anda dapat memanggil fungsi tersebut bahkan sebelum mendeklarasikannya:
Greet(); // Output: "Hello, world!"
Function Greet () {
console.log ("Hello, world!") ;
}
Dalam contoh ini, pengenalnya adalah Greet Fungsi ini diangkat ke atas, memungkinkan akses ke definisinya saat runtime. Perlu dicatat bahwa pemanggilan fungsi terjadi sebelum definisi sebenarnya dalam kode, tetapi berfungsi karena pengangkatan.
ekspresi fungsi
Ekspresi fungsi tidak diangkat sepenuhnya, yang berarti Anda mungkin mengalami kesalahan jika mencoba memanggil ekspresi fungsi sebelum ekspresi tersebut didefinisikan dalam cakupannya. Khususnya, meskipun variabel yang diberi fungsi dipromosikan, definisi fungsi sebenarnya tidak.
sayHello (); // TypeError: say Hello is not a function
Var sayHello = function () {
console.log("Hello!");
};
Kode ini berperilaku seolah-olah ditulis seperti ini:
Var sayHello;
sayHello (); // TypeError: say Hello is not a function
sayHello = function () {
console.log("Hello!");
};
Dalam contoh di atas, pernyataannya var sayHello Dipromosikan ke jajaran teratas. Namun, ketika kami mencoba menjalankan fungsi yang ditugaskan padanyasayHellokarena belum dialokasikan, hal ini akan mengakibatkan Type Error. Oleh karena itu, Anda tidak dapat memanggil ekspresi fungsi sebelum didefinisikan.
sebagai kesimpulan
Hoisting adalah salah satu konsep JavaScript menarik yang dapat membuat hidup Anda sebagai programmer JS lebih mudah dan lebih sulit. Pahami cara kerja pengangkatan var, let, constdeklarasi fungsi dapat membantu Anda menghindari kesalahan rumit dalam kode JavaScript.
rencana pengembangan website
metode pengembangan website
jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website
#Meningkatkan #dalam #JavaScript #beragampengetahuan