𝗙𝘂𝗻𝗴𝘀𝗶, 𝗧𝗵𝗿𝗲𝗮𝗱, 𝗱𝗮𝗻 𝗣𝗲𝗹𝗮𝗸𝘀𝗮𝗻𝗮𝗮𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Memahami asas JavaScript membantu anda menulis kod yang lebih baik. Berikut adalah pecahan mengenai fungsi, proses, thread, dan gaya pelaksanaan.
𝟱 𝗝𝗲𝗻𝗶𝘀 𝗙𝘂𝗻𝗴𝘀𝗶 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
- Fungsi Bernama (Named Function): Fungsi dengan nama yang khusus. Ia membantu dalam penyahpepijatan (debugging) dan penggunaan semula.
- Fungsi Tanpa Nama (Anonymous Function): Fungsi tanpa nama. Anda sering menggunakannya sebagai callback.
- Ekspresi Fungsi (Function Expression): Anda menetapkan fungsi kepada satu pemboleh ubah. Anda memanggilnya menggunakan nama pemboleh ubah tersebut.
- Fungsi Anak Panah (Arrow Function): Sintaks ringkas menggunakan simbol =>. Ia mengendalikan 'this' secara berbeza.
- IIFE: Fungsi yang berjalan sebaik sahaja anda mentakrifkannya. Ia mencipta skop peribadi (private scope).
𝗣𝗿𝗼𝘀𝗲𝘀 𝗹𝘄𝗻. 𝗧𝗵𝗿𝗲𝗮𝗱
Proses ialah program yang sedang berjalan pada komputer anda.
- Ia mempunyai memorinya sendiri.
- Ia mempunyai ID unik yang dipanggil PID.
- Jika satu proses terhenti (crash), proses lain akan terus berjalan.
- Contoh: Chrome dan Spotify adalah proses yang berasingan.
Thread ialah unit kecil di dalam sesuatu proses.
- Thread berkongsi memori yang sama dalam sesuatu proses.
- Ia membolehkan program melakukan banyak perkara pada satu masa.
- Contoh: Chrome menggunakan pelbagai thread untuk memaparkan (render) halaman sambil memainkan bunyi.
𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗹𝘄𝗻. 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀
JavaScript adalah single-threaded. Ini bermakna ia mengendalikan satu tugasan pada satu masa.
Pelaksanaan Synchronous:
- Tugasan berjalan satu demi satu.
- Setiap baris menunggu baris sebelumnya selesai.
- Tugasan yang perlahan boleh menghalang perkara lain daripada berjalan.
Pelaksanaan Asynchronous:
- Tugasan boleh bermula sekarang dan selesai kemudian.
- Ia tidak menyekat (block) baki kod anda.
- Ini berfungsi melalui Event Loop.
- Pelayar (browser) menggunakan Web APIs untuk mengendalikan tugasan seperti pemasa (timers) atau pengambilan data (data fetching) di latar belakang.
- Sebaik sahaja tugasan latar belakang selesai, Event Loop akan menolaknya semula ke dalam stack untuk dijalankan.