Membezakan Sintaks Pengisytiharan Pembolehubah dalam JavaScript, Termasuk Pembolehubah Global
Dalam JavaScript, apabila mengisytiharkan pembolehubah dalam skop global, terdapat halus tetapi ketara perbezaan antara pelbagai sintaks. Mari terokai perbezaan ini:
1. var vs. let vs. const
-
var a = 0;: Mencipta pembolehubah global yang juga merupakan sifat objek global (boleh diakses sebagai tetingkap dalam penyemak imbas ). Sintaks ini telah ditamatkan kerana kemungkinan kesan sampingan yang tidak diingini dan isu pengangkatan berubah-ubah.
-
biar a = 0; (ES2015 ): Mencipta pembolehubah global yang bukan sifat objek global. Ia memperkenalkan "Zon Mati Sementara (TDZ)" di mana pembolehubah tidak boleh diakses sehingga pernyataan let ditemui.
-
const a = 0; (ES2015 ): Mencipta pemalar global, yang juga bukan sifat objek global. Const binding mempunyai sekatan tambahan: anda mesti menyediakan pemula dan nilai tidak boleh ditukar pada masa jalan.
2. a = 0;
Sangat tidak digalakkan, sintaks ini mengisytiharkan pembolehubah global tanpa pengisytiharan yang jelas. Ia dianggap ralat dalam mod ketat.
3. tingkap.a = 0; lwn. globalThis.a = 0;
-
window.a = 0: Bersamaan dengan a = 0 apabila digunakan dalam skop global. Ia mencipta sifat global pada objek tetingkap.
-
globalThis.a = 0: Alternatif yang lebih moden kepada window.a yang berfungsi dalam semua persekitaran (termasuk konteks bukan penyemak imbas).
4. this.a = 0;
Mencipta sifat pada objek global (apabila digunakan dalam skop global). Walau bagaimanapun, sintaks ini tidak disyorkan kerana ia boleh menjadi samar-samar dalam situasi tertentu.
Atas ialah kandungan terperinci Bagaimanakah Sintaks Perisytiharan Pembolehubah JavaScript Berbeza Mempengaruhi Skop Global?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!