𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀, 𝗧𝗵𝗿𝗲𝗮𝗱𝘀, 𝗮𝗻𝗱 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻
Memahami dasar-dasar JavaScript membantu Anda menulis kode yang lebih baik. Berikut adalah rincian mengenai fungsi, proses, thread, dan gaya eksekusi.
𝟱 𝗧𝘆𝗽𝗲𝘀 𝗼𝗳 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
- Named Function: Fungsi dengan nama tertentu. Ini membantu dalam debugging dan penggunaan kembali (reuse).
- Anonymous Function: Fungsi tanpa nama. Anda sering menggunakan ini sebagai callback.
- Function Expression: Anda menetapkan fungsi ke sebuah variabel. Anda memanggilnya menggunakan nama variabel tersebut.
- Arrow Function: Sintaks singkat menggunakan simbol =>. Ini menangani 'this' secara berbeda.
- IIFE: Fungsi yang langsung berjalan segera setelah Anda mendefinisikannya. Ini membuat scope privat.
𝗣𝗿𝗼𝗰𝗲𝘀𝘀 𝘃𝘀. 𝗧𝗵𝗿𝗲𝗮𝗱
Sebuah Proses adalah program yang berjalan di komputer Anda.
- Ia memiliki memorinya sendiri.
- Ia memiliki ID unik yang disebut PID.
- Jika satu proses crash, proses lainnya tetap berjalan.
- Contoh: Chrome dan Spotify adalah proses yang terpisah.
Sebuah Thread adalah unit kecil di dalam sebuah proses.
- Thread berbagi memori yang sama di dalam sebuah proses.
- Mereka memungkinkan sebuah program untuk melakukan banyak hal sekaligus.
- Contoh: Chrome menggunakan beberapa thread untuk merender halaman sambil memutar suara.
𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝘃𝘀. 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀
JavaScript bersifat single-threaded. Ini berarti ia menangani satu tugas pada satu waktu.
Eksekusi Sinkron (Synchronous Execution):
- Tugas berjalan satu per satu.
- Setiap baris menunggu baris sebelumnya selesai.
- Tugas yang lambat dapat menghentikan semua hal lainnya untuk berjalan.
Eksekusi Asinkron (Asynchronous Execution):
- Tugas dapat dimulai sekarang dan selesai nanti.
- Ini tidak memblokir sisa kode Anda.
- Ini bekerja melalui Event Loop.
- Browser menggunakan Web APIs untuk menangani tugas seperti timer atau pengambilan data (data fetching) di latar belakang.
- Setelah tugas latar belakang selesai, Event Loop mendorongnya kembali ke stack untuk dijalankan.