JavaScript
Apa itu ini
JavaScript adalah bahasa web. Ini satu-satunya bahasa yang berjalan secara native di setiap browser. Melalui Node, Deno, dan Bun, JavaScript juga berjalan di server, jadi kamu bisa membangun seluruh aplikasi dengannya. Bahasa ini memeriksa data kamu hanya saat program sedang berjalan, bukan sebelumnya — seperti menulis resep tanpa daftar cek bahan, di mana bahan yang hilang baru ketahuan di tengah proses memasak (ini disebut "dynamically typed" / bertipe dinamis). JavaScript juga bersifat event-driven (digerakkan oleh peristiwa) dan ada di mana-mana, yang menjadikannya bahasa pemrograman paling banyak digunakan di dunia.
Kelebihan
- Berjalan di mana saja: browser, server, function, bahkan perangkat tertanam (embedded).
- Tidak ada tahap compile; edit lalu refresh untuk umpan balik instan.
- Ekosistem npm (Node Manager) yang sangat besar dan komunitas yang luas.
- Dukungan async kelas satu dengan promise dan
async/await.
Kompromi
- Tidak ada tipe statis — banyak error baru muncul saat runtime.
- Kejanggalan historis: kesetaraan longgar (
==), pengikatanthis, konversi tipe implisit (coercion). - Mudah menciptakan tumpukan callback atau ketergantungan yang tidak terkendali tanpa disiplin.
- Bahasa yang sama di / bisa mengaburkan batas arsitektural.
Kapan menggunakannya
Gunakan JavaScript murni untuk skrip cepat, proyek kecil, belajar, prototipe, atau lingkungan di mana menambahkan tahap build tidak sepadan. Untuk sesuatu yang lebih besar atau berumur panjang, sebagian besar tim beralih ke TypeScript — tapi JS tetap menjadi cara tercepat untuk menjalankan sesuatu di browser atau alat Node kecil.
Kecocokan dengan vibe coding
Asisten AI menangani JavaScript dengan lancar, tetapi ketiadaan tipe berarti kode yang dihasilkan bisa diam-diam mengasumsikan bentuk data yang salah. Arahkan AI untuk menggunakan sintaks modern (const/let, arrow function, async/await, modules) dan kesetaraan ketat (strict equality), lalu minta AI menambahkan pemeriksaan defensif atau komentar JSDoc di tempat bentuk data itu penting. Tentukan lingkunganmu — browser vs. Node, ESM vs. CommonJS — supaya import-nya benar. Karena tidak ada compiler yang bisa diandalkan, minta contoh kecil yang bisa dijalankan atau test agar kamu bisa memverifikasi perilakunya secara langsung.
const fetchTitle = async (url) => {
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const html = await res.text();
return html.match(/<title>(.*?)<\/title>/i)?.[1] ?? "(no title)";
};
fetchTitle("https://example.com").then(console.log);