Bạn có thể đã viết JavaScript hằng ngày — nhưng có bao giờ hiểu vì sao 0.1 + 0.2 !== 0.3,
vì sao typeof null === 'object', hay event loop chạy thực sự như thế nào? Sub-pillar này
dạy JavaScript như ngôn ngữ chính quy — 12 chương, từ ES2024 đến TypeScript 5.4+.
Chia 2 phase: JavaScript core (chương 1–8) + TypeScript (chương 9–12). Mỗi chương ~700-1200 dòng, có: lý thuyết chi tiết, code chạy được, visualizer, 4-5 bài tập, 7-8 quiz, tổng kết. TypeScript chương dùng accent xanh để phân biệt.
3 nơi chạy JS (browser, Node, Deno/Bun), npm, package.json, Vite intro, tooling baseline.
let/const/var, 7 primitive types, type coercion gotchas, == vs ===, truthy/falsy.
4 cách định nghĩa function, this binding (4 rule), scope chain, hoisting, closure pattern.
Object literal, prototype chain, class syntax, private field #x, composition vs inheritance.
map/filter/reduce, mutating vs non-mutating, iteration protocol, generator, Set/Map/WeakMap.
Event loop chi tiết, Promise, async/await, microtask vs macrotask, AbortController.
Error class hierarchy, custom Error, try/catch async, Result type pattern, global handler, anti-pattern.
CommonJS vs ESM, named/default export, dynamic import, tree-shaking, Vite vs esbuild vs Webpack.
Setup tsconfig, primitive type, union/intersection, narrowing, type vs interface, unknown/any/never.
Generic function/class, constraint extends, Partial/Pick/Omit/Record, default type param.
Conditional types, infer, mapped types, template literal types, key remapping, recursive types.
tsconfig đầy đủ, strict mode, module resolution, .d.ts, setup Node/Vite/library, typed patterns.
90% người viết JavaScript học qua "copy-paste Stack Overflow" — gõ được code chạy nhưng không hiểu
vì sao. Khi gặp bug khó (closure rò state, this mất binding, Promise reject không catch),
không có khung tham chiếu để debug.
Sub-pillar này đi từ nền tảng: event loop, type coercion, prototype chain, scope chain — những thứ là nguồn của mọi bug. Học xong, bạn không chỉ "viết được JS" mà còn dự đoán được code sẽ làm gì.
Đã viết JS một thời gian nhưng muốn hệ thống lại — ideal. Mới học JS từ zero — cũng OK, chương 1 không assume kiến thức trước. Mỗi chương có callout so sánh với Dart (nếu bạn vừa học Dart).
Tài liệu JavaScript trên internet cực kỳ phân mảnh, nhiều bài cũ dạy var + callback hell + bundler
Webpack config phức tạp. Sub-pillar này 100% modern JS (ES2024+): let/const default,
async/await thay callback, Vite thay Webpack cho dev.
Mỗi chương có section "Connects to" cuối, trỏ tới chương khác trong Pillar 9 hoặc trụ cột nền tảng. Ví dụ: chương 6 (Async event loop) đối chiếu với Dart Chương 7 (Future & Stream); chương 9-12 (TypeScript) áp dụng pattern OOP từ trụ cột 6 OOP với type modeling rõ ràng.
Học xong 12 chương JavaScript → mở Python sub-pillar (10 chương) để có 2 ngôn ngữ scripting/server-side trong tay.