Ini catatan induk (map of content) buat terjemahan Eloquent JavaScript edisi ke-4 karya Marijn Haverbeke (eloquentjavascript.net). Diterjemahin ke Bahasa Indonesia dengan gaya bahasa santai buat belajar, kata per baris, bukan rangkuman. Setiap bab jadi satu catatan, saling nyambung lewat wikilink. Buku aslinya dilisensikan Creative Commons Attribution-NonCommercial 3.0, jadi boleh diterjemahin buat keperluan belajar non-komersial dengan atribusi.
Cara Baca
Klik judul bab buat buka catatannya. Tiap bab punya link ke bab sebelum dan sesudahnya di bagian atas, plus wikilink ke konsep-konsep terkait di dalam teks. Latihan di tiap bab udah dilengkapi petunjuk + solusi langsung di catatannya, jadi gak perlu buka website.
Bagian 1 — Bahasa JavaScript
Konsep inti bahasanya. Habis bagian ini kamu udah bisa nulis program JavaScript beneran.
- 00 Pengenalan — apa itu pemrograman, kenapa bahasa penting, apa itu JavaScript, cara pakai buku ini
- 01 Nilai, Tipe, dan Operator — bit, angka, string, boolean, nilai kosong, konversi tipe, operator
- 02 Struktur Program — ekspresi, statement, binding, fungsi, alur kontrol (
if/while/for), komentar - 03 Fungsi — definisi fungsi, scope, closure, rekursi, call stack, argumen opsional
- 04 Struktur Data Objek dan Array — array, objek, method, mutability,
for/of, destructuring, JSON - 05 Fungsi Tingkat Tinggi — abstraksi,
filter/map/reduce/some/find, kode karakter Unicode - 06 Kehidupan Rahasia Objek —
this, prototype,class, properti privat,Map, polymorphism, iterator, inheritance - 07 Proyek Robot Pengantar Paket 🛠️ — proyek: graph, state persistent, simulasi, pathfinding
- 08 Bug dan Error — strict mode, tipe, testing, debugging, exception (
try/catch/finally), assertion - 09 Regular Expression — pola, set karakter, pengulangan, grup, backtracking,
replace, classDate - 10 Modul — ES modules (
import/export), package & NPM, CommonJS, bundling, desain modul - 11 Pemrograman Asinkron — callback, promise,
async/await, generator, event loop, bug asinkron - 12 Proyek Bahasa Pemrograman 🛠️ — proyek: bikin bahasa “Egg” (parser + evaluator + special form)
Bagian 2 — Browser
JavaScript di dalam browser web.
- 13 JavaScript dan Browser — jaringan, TCP, Web, URL, HTML,
<script>, sandboxing, sejarah browser - 14 Document Object Model — DOM sebagai pohon, cari/ubah/bikin node, atribut, styling/CSS, animasi
- 15 Menangani Event — event handler, propagation, keyboard/mouse/touch/scroll, web worker, timer, debouncing
- 16 Proyek Game Platform 🛠️ — proyek: game platformer pakai DOM (level, actor, collision, loop)
- 17 Menggambar di Canvas — SVG vs canvas, garis/path/kurva/teks, gambar & sprite, transformasi
- 18 HTTP dan Form — protokol HTTP,
fetch, HTTPS, field form,FileReader,localStorage - 19 Proyek Editor Pixel Art 🛠️ — proyek: editor pixel art (komponen, aliran data satu arah, undo)
Bagian 3 — Node.js
JavaScript di luar browser, buat server dan command line.
- 20 Node.js —
node, modul, NPM &package.json, filesystem, HTTP server, stream, file server - 21 Proyek Website Skill-Sharing 🛠️ — proyek: website full-stack live pakai long polling
Peta Konsep Cepat
- Dasar bahasa: 01 Nilai, Tipe, dan Operator → 02 Struktur Program → 03 Fungsi → 04 Struktur Data Objek dan Array
- Abstraksi & OOP: 05 Fungsi Tingkat Tinggi · 06 Kehidupan Rahasia Objek
- Ketahanan program: 08 Bug dan Error · 10 Modul
- Waktu & event: 11 Pemrograman Asinkron · 15 Menangani Event
- Tampilan: 14 Document Object Model · 17 Menggambar di Canvas
- Jaringan: 13 JavaScript dan Browser · 18 HTTP dan Form · 20 Node.js
- Proyek (belajar sambil bikin): 07 Proyek Robot Pengantar Paket · 12 Proyek Bahasa Pemrograman · 16 Proyek Game Platform · 19 Proyek Editor Pixel Art · 21 Proyek Website Skill-Sharing