Zon Mati Temporal (TDZ) dan Pengangkatan dalam JavaScript:

DDD
Lepaskan: 2024-09-18 17:39:06
asal
449 orang telah melayarinya

Temporal Dead Zone (TDZ) and Hoisting in JavaScript:

Zon Mati Sementara (TDZ) dan Pengangkatan dalam JavaScript:

  1. Zon Mati Sementara (TDZ): Zon Mati Temporal merujuk kepada tempoh masa antara memasuki skop (seperti blok atau fungsi) dan pembolehubah diisytiharkan. Dalam zon ini, sebarang percubaan untuk mengakses pembolehubah akan menghasilkan ReferenceError. TDZ wujud untuk pembolehubah yang diisytiharkan menggunakan let, const dan kelas sebelum ia dimulakan.

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.


  1. Pengangkatan: Pengangkatan merujuk kepada gelagat dalam JavaScript di mana pengisytiharan pembolehubah dan fungsi dialihkan ke bahagian atas skopnya (sama ada skop global atau skop fungsi/blok) semasa fasa penyusunan. Walau bagaimanapun, hanya pengisytiharan yang dinaikkan, bukan permulaan.

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!