Lingkup bisa menjadi salah satu aspek yang lebih membingungkan dalam JavaScript. Lingkup menentukan bagaimana nama variabel dicari. Dalam JavaScript ada cakupan tingkat atas - objek global - dan setiap fungsi mendapatkan cakupannya sendiri, terkadang disebut objek aktivasi. Cakupan ini diatur dalam rantai dengan cakupan fungsi bersarang menggunakan cakupan sekitarnya sebagai induk, dan pencarian nama bergerak naik rantai cakupan dari anak ke induk Show
Dengan demikian, sebagian besar JavaScript , artinya fungsi dapat mengakses variabel yang ditentukan di sekitarnya. Ini bagus, karena memberi kita penutupan, salah satu hal yang membuat JavaScript hebat Kelemahan lingkup global dalam JavaScript "standar".Masalah umum untuk aplikasi berbasis browser adalah objek global, yang merupakan cakupan tingkat atas yang digunakan bersama oleh semua skrip. Jika beberapa skrip dijalankan dalam konteks yang sama, semuanya berjalan dalam cakupan tingkat atas yang sama. Jika mereka mendefinisikan variabel tingkat atas dengan nama yang sama, skrip terakhir menang. Hal ini diilustrasikan dalam diagram berikut Untuk mengatasi masalah ini, berbagai solusi telah diadopsi, dari hanya menggunakan satu variabel global menggunakan nama khusus seperti "$" atau "_" untuk menghindari cakupan global secara bersamaan dengan meletakkan semua kode di dalam penutupan Cakupan global dan modul di RingoRingo memecahkan masalah ini pada tingkat dasar dengan memberikan setiap modul ruang lingkup tingkat atas sendiri untuk dijalankan. Objek global masih ada, tetapi tidak dalam rantai cakupan. Sebaliknya, ini adalah prototipe dari semua cakupan modul, seperti yang diilustrasikan dalam diagram berikut Seperti yang bisa dilihat, objek global bukan lagi tempat variabel dialokasikan. Terlepas dari dengan atau tanpa Hai teman-teman, pada artikel hari ini saya ingin berbicara tentang variabel global di Node.js. Artikel ini ditujukan untuk pengembang yang memiliki tingkat keterampilan pemula hingga menengah yang bekerja dengan Node. Jika Anda belum pernah mendengar tentang variabel global atau bekerja dengannya, tidak perlu khawatir. Artikel ini akan membuat Anda siap dan bekerja dalam waktu singkat dengan semua yang perlu Anda ketahui tentang variabel global Apa itu Variabel Global?Variabel global sangat mirip, jika tidak identik, dengan variabel biasa. Variabel global dapat diinisialisasi dengan nilai, nilai tersebut dapat diubah, dan bahkan dapat dihapus seperti variabel biasa. Perbedaan antara variabel reguler dan variabel global tergantung pada cakupannya. Saat Anda membuat variabel dalam file JavaScript, variabel tersebut hanya ada dalam cakupan yang dideklarasikan. Sekarang apa yang saya maksud dengan ini? Pada potongan kode di atas, kita bisa melihat ada dua variabel, Hal ini dimungkinkan karena program JavaScript berbagi namespace global antara semua file dalam program. Dengan kata lain, bayangkan program Anda adalah file atau wadah raksasa yang telah "mengimpor" semua file JavaScript lainnya. Anda kemudian mendeklarasikan variabel dalam file kontainer besar ini, variabel itu sekarang memiliki cakupan di seluruh program. Jika Anda tidak yakin apa itu namespace atau ingin tahu lebih banyak tentangnya, lihat artikel ini untuk mempelajari lebih lanjut Cara Mendeklarasikan dan Menggunakan Variabel GlobalSekarang kita memiliki pemahaman yang lebih baik tentang apa itu variabel global di Node, mari kita bicara tentang bagaimana sebenarnya kita menyiapkan dan menggunakan variabel global. Untuk menyiapkan variabel global, kita perlu membuatnya di objek global. Objek global adalah apa yang memberi kita ruang lingkup seluruh proyek, bukan hanya file (modul) tempat variabel dibuat. Pada blok kode di bawah ini, kita membuat variabel global bernama Apa yang belum saya bicarakan adalah cara lain untuk membuat variabel global. Alasan saya mengecualikan ini adalah karena ini bukan cara yang tepat untuk menyiapkan variabel. Jika Anda mendeklarasikan variabel dalam file tanpa menggunakan kata kunci Kasus Penggunaan Praktis untuk Variabel GlobalSekarang, Anda mungkin berpikir pada diri sendiri bahwa Anda ingin pergi dan membuat variabel global sekarang karena Anda tahu lebih banyak tentangnya. Saya akan sangat berhati-hati untuk tidak membuat variabel global karena beberapa alasan yang sangat penting Alasan pertama adalah ketika Anda membuat variabel global, itu ada sepanjang masa pakai aplikasi. Ketika sebuah variabel bertahan sepanjang masa aplikasi, itu berarti variabel itu ada, di memori, menempati sumber daya saat aplikasi sedang berjalan Kedua, secara tradisional menggunakan variabel global dapat menyebabkan masalah konkurensi. Jika banyak utas dapat mengakses variabel yang sama dan tidak ada pengubah akses atau failsafes di tempat, itu dapat menyebabkan beberapa masalah serius dari dua utas yang mencoba mengakses dan menggunakan variabel yang sama. Namun, meskipun ini terjadi di bahasa lain, belum tentu demikian untuk Node.js. js karena ini adalah lingkungan single-threaded. Meskipun dimungkinkan untuk mengelompokkan proses Node, tidak ada cara asli untuk berkomunikasi di antara mereka Alasan terakhir yang akan saya bicarakan adalah bahwa penggunaan global dapat menyebabkan penggabungan implisit antara file atau variabel. Menggabungkan bukanlah hal yang baik dalam hal menulis kode yang bagus. Saat menulis kode, kami ingin memastikan bahwa itu modular dan dapat digunakan kembali sebanyak mungkin, sementara juga memastikan mudah digunakan dan dipahami. Menggabungkan potongan-potongan kode Anda bersama-sama dapat menyebabkan beberapa sakit kepala besar di jalan ketika Anda mencoba untuk men-debug mengapa ada sesuatu yang tidak berfungsi Jika Anda ingin tahu lebih banyak tentang mengapa global tidak direkomendasikan, Anda dapat melihat artikel hebat ini yang disebut Variabel Global Buruk Jika Anda merasa bingung dengan tujuan dari variabel global, jangan takut. Kami akan melihat beberapa variabel global yang dibangun ke dalam Node dan mencoba untuk mendapatkan pemahaman yang lebih baik tentang mengapa mereka bersifat global dan bagaimana penggunaannya. Faktanya, Anda mungkin telah menggunakan beberapa dari mereka bahkan tanpa menyadari bahwa mereka adalah objek global Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan menyertakan lembar contekan. Hentikan perintah Googling Git dan benar-benar pelajari itu Jika Anda melihat blok kode di atas, Anda mungkin akan melihat setidaknya satu contoh yang pernah Anda gunakan sebelumnya, Ini membawa kita ke pernyataan berikutnya yang Anda lihat di blok kode di atas, objek Semua kasus penggunaan yang disebutkan di atas dibangun ke dalam Node dan bersifat global karena suatu alasan. Objek Belajarlah lagiIngin mempelajari lebih lanjut tentang dasar-dasar Node. js? . js karena videonya jauh lebih mudah diikuti dan Anda benar-benar dapat membangun aplikasi dunia nyata KesimpulanSaya tahu itu sedikit informasi, jadi terima kasih telah menyampaikannya. Semua informasi di atas ditemukan dalam dokumentasi di situs web Node. Silakan ajukan pertanyaan dan berikan komentar di bagian komentar di bawah ini. Sampai lain kali teman-teman Apakah variabel global dibagi antar modul?Bisakah saya memiliki variabel global bersama di berbagai file? . the global variable is unique to its own module.
Bagaimana cara saya berbagi variabel global di seluruh modul?Kita dapat membuat file konfigurasi & menyimpan seluruh variabel global untuk dibagikan ke seluruh modul atau skrip di dalamnya . Dengan hanya mengimpor config, seluruh variabel global yang ditentukan akan tersedia untuk digunakan di modul lain. Misalnya saya ingin a, b & c untuk berbagi antar modul.
Bagaimana Anda berbagi variabel antar modul?Cara terbaik untuk berbagi variabel global lintas modul dalam satu program adalah dengan membuat modul konfigurasi . Cukup impor modul konfigurasi di semua modul aplikasi Anda; .
Apakah praktik yang buruk menggunakan variabel global dalam JavaScript?Hindari global. Variabel global dan nama fungsi adalah ide yang sangat buruk . Alasannya adalah setiap file JavaScript yang disertakan di halaman berjalan dalam cakupan yang sama. |