Rumah >hujung hadapan web >tutorial js >Objek Global dalam JavaScript
Dalam JavaScript, objek global ialah konsep utama untuk semua pembangun. Ia mengandungi semua pembolehubah, fungsi dan objek yang boleh diakses secara global dalam program anda. Siaran ini bertujuan untuk menerangkan apakah sebenarnya objek global, cara ia berkelakuan dalam persekitaran yang berbeza dan sebab mengurusnya dengan betul adalah penting untuk kod yang berkesan, bersih dan boleh diselenggara.
Apakah Objek Global?
Objek global boleh difahami sebagai persekitaran tempat JavaScript dijalankan. Ia adalah bekas untuk semua pembolehubah dan fungsi global. Dalam penyemak imbas, objek global ialah tetingkap _manakala dalam Node.js ialah _global. Sebarang pembolehubah atau fungsi global yang diisytiharkan di luar fungsi boleh diakses melalui objek global.
Pelayar
var a = 1; console.log(window.a); // 1
Node.js
var a = 1; console.log(global.a); // 1
Skop dan Pembolehubah Global
Pembolehubah yang diisytiharkan secara global dilampirkan pada objek global. Konflik boleh timbul di sini jika berbilang skrip berkongsi ruang global yang sama.
Bayangkan anda mempunyai dua skrip berbeza yang kedua-duanya mengisytiharkan pembolehubah dengan nama yang sama dalam skop global menggunakan var.
Skrip 1
var message = "Hello!"; console.log(message) // Hello!
Skrip 2
var message = "Goodbye!"; console.log(message); // Goodbye!
Apabila kedua-dua skrip dijalankan, kedua-duanya mengisytiharkan pembolehubah mesej dalam skop global menggunakan var. Skrip kedua menimpa nilai mesej yang telah ditetapkan oleh skrip 1 kerana kedua-dua pembolehubah disimpan dalam ruang global yang sama(tetingkap dalam penyemak imbas). Ini mengakibatkan perbezaan dalam output.
Adalah yang terbaik untuk mengelakkan perkara ini dengan mengehadkan penggunaan pembolehubah global. Pastikan skop sebagai setempat yang mungkin.
globalThis dan tetingkap
Sehingga baru-baru ini, pembangun terpaksa menggunakan tetingkap dalam penyemak imbas dan global dalam Node.js untuk mengakses objek global. Walau bagaimanapun, ES2020 memperkenalkan globalThis, cara bersatu untuk mengakses objek global merentas persekitaran. globalThis menyeragamkan akses kepada objek global.
Fungsi dan Objek Global
Objek global juga memegang objek dan fungsi terbina dalam, seperti: konsol, setTimeout _and _setInterval, JSON dan Math. Anda boleh mengaksesnya secara global tanpa perlu merujuk objek global secara langsung.
Jadi bagaimana kita mengekalkan amalan terbaik sambil mengekalkan kod yang bersih dan berkesan? Objek global berguna tetapi terlalu bergantung padanya boleh membawa kepada masalah. Berikut ialah beberapa nasihat: elakkan menggunakan pembolehubah global (var) untuk mengurangkan risiko konflik nama dan kesan sampingan yang tidak diingini dan sebaliknya gunakan pembolehubah tempatan dalam fungsi. Gunakan let dan const.
Objek Global dalam Penyemak Imbas
Dalam penyemak imbas, objek tetingkap bukan sekadar bekas global. Ia juga memegang DOM (dokumen), API penyemak imbas (fetch) dan objek khusus web yang lain. Ini menjadikan tetingkap sebagai pusat kepada mana-mana pelaksanaan JavaScript berasaskan pelayar.
Objek Global dalam Node.js
Dalam Node.js, objek global adalah global, tetapi ia tidak menambah pembolehubah secara automatik padanya seperti yang dilakukan tetingkap dalam penyemak imbas. Node.js menggalakkan penggunaan modul untuk memastikan ruang nama global bersih dan berstruktur.
Kesimpulan
Objek global adalah penting kepada cara JavaScript mengendalikan pembolehubah global, fungsi dan objek. Memahami cara ia berfungsi dalam persekitaran yang berbeza, menggunakannya dengan berhati-hati dan mengikuti amalan terbaik akan membantu anda menulis kod yang bersih dan boleh diselenggara. Dengan meminimumkan pembolehubah global, menggunakan let atau const, anda boleh mengelakkan masalah dan meningkatkan kemahiran JavaScript anda.
Sumber:
Objek_Global
objek global
Atas ialah kandungan terperinci Objek Global dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!