Zon Mati Sementara (TDZ) dan Pengangkatan dalam JavaScript:
Contoh:
console.log(myVar); // tidak ditentukan
console.log(myLet); // ReferenceError: Tidak boleh mengakses 'myLet' sebelum pemula
var myVar = 5;
biarkan myLet = 10;
Dalam contoh di atas, myVar diisytiharkan menggunakan var, jadi ia dinaikkan dan dimulakan kepada tidak ditentukan. Tetapi myLet berada dalam Zon Mati Temporal sehingga pengisytiharannya, jadi cuba mengaksesnya sebelum pengisytiharan melemparkan ReferenceError.
Perkara Penting tentang TDZ:
Pembolehubah yang diisytiharkan menggunakan let atau const tidak boleh diakses sebelum pengisytiharannya dalam skop blok, walaupun ia dinaikkan.
Ini menghalang penggunaan pembolehubah sebelum ia dimulakan secara eksplisit.
Contoh:
console.log(myVar); // tidak ditentukan
var myVar = 5;
Dalam contoh di atas, pengisytiharan myVar dinaikkan ke atas, tetapi permulaannya (myVar = 5) kekal di tempat ia ditulis. Jadi, apabila console.log(myVar) dipanggil sebelum permulaan, ia kembali tidak ditentukan.
Pengangkatan var, let, const dan fungsi:
var: Pembolehubah yang diisytiharkan dengan var dinaikkan dan dimulakan dengan undefined.
console.log(myVar); // tidak ditentukan
var myVar = 10;
let dan const: Pembolehubah yang diisytiharkan dengan let dan const dinaikkan tetapi tidak dimulakan. Mereka kekal dalam TDZ sehingga permulaannya.
console.log(myLet); // ReferenceError
biarkan myLet = 20;
Pengisytiharan fungsi: Pengisytiharan fungsi dinaikkan sepenuhnya, bermakna anda boleh memanggil fungsi walaupun sebelum titik di mana ia diisytiharkan dalam kod.
myFunc(); // "Hello!"
fungsi myFunc() {
console.log("Hello!");
}
Perbezaan Utama Antara Hoisting dan TDZ:
Angkat mengangkat pembolehubah dan pengisytiharan fungsi ke bahagian atas skopnya.
Zon Mati Temporal berlaku untuk let, const dan kelas, di mana pembolehubah dinaikkan tetapi tidak boleh diakses sehingga ia dimulakan. Ini menghalang daripada mengakses pembolehubah sebelum pengisytiharan mereka.
Atas ialah kandungan terperinci Zon Mati Temporal (TDZ) dan Pengangkatan dalam JavaScript:. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!