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.

  1. 00 Pengenalan — apa itu pemrograman, kenapa bahasa penting, apa itu JavaScript, cara pakai buku ini
  2. 01 Nilai, Tipe, dan Operator — bit, angka, string, boolean, nilai kosong, konversi tipe, operator
  3. 02 Struktur Program — ekspresi, statement, binding, fungsi, alur kontrol (if/while/for), komentar
  4. 03 Fungsi — definisi fungsi, scope, closure, rekursi, call stack, argumen opsional
  5. 04 Struktur Data Objek dan Array — array, objek, method, mutability, for/of, destructuring, JSON
  6. 05 Fungsi Tingkat Tinggi — abstraksi, filter/map/reduce/some/find, kode karakter Unicode
  7. 06 Kehidupan Rahasia Objek — this, prototype, class, properti privat, Map, polymorphism, iterator, inheritance
  8. 07 Proyek Robot Pengantar Paket 🛠️ — proyek: graph, state persistent, simulasi, pathfinding
  9. 08 Bug dan Error — strict mode, tipe, testing, debugging, exception (try/catch/finally), assertion
  10. 09 Regular Expression — pola, set karakter, pengulangan, grup, backtracking, replace, class Date
  11. 10 Modul — ES modules (import/export), package & NPM, CommonJS, bundling, desain modul
  12. 11 Pemrograman Asinkron — callback, promise, async/await, generator, event loop, bug asinkron
  13. 12 Proyek Bahasa Pemrograman 🛠️ — proyek: bikin bahasa “Egg” (parser + evaluator + special form)

Bagian 2 — Browser

JavaScript di dalam browser web.

  1. 13 JavaScript dan Browser — jaringan, TCP, Web, URL, HTML, <script>, sandboxing, sejarah browser
  2. 14 Document Object Model — DOM sebagai pohon, cari/ubah/bikin node, atribut, styling/CSS, animasi
  3. 15 Menangani Event — event handler, propagation, keyboard/mouse/touch/scroll, web worker, timer, debouncing
  4. 16 Proyek Game Platform 🛠️ — proyek: game platformer pakai DOM (level, actor, collision, loop)
  5. 17 Menggambar di Canvas — SVG vs canvas, garis/path/kurva/teks, gambar & sprite, transformasi
  6. 18 HTTP dan Form — protokol HTTP, fetch, HTTPS, field form, FileReader, localStorage
  7. 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.

  1. 20 Node.js — node, modul, NPM & package.json, filesystem, HTTP server, stream, file server
  2. 21 Proyek Website Skill-Sharing 🛠️ — proyek: website full-stack live pakai long polling

Peta Konsep Cepat