JavaScript là ngôn ngữ lập trình web scripting, lightweight, interpreted. Mỗi browser có engine riêng:
- SpiderMonkey — Firefox
- V8 — Chrome, Node.js, Edge
- JavaScriptCore (Nitro) — Safari
- Chakra — IE/Edge legacy
Chuẩn hóa bởi **ECMA (ECMA-262)** → ECMAScript specification.
Cách JS Engine hoạt động (2 phases)
- Creation Phase: Parse toàn bộ code, check syntax, throw SyntaxError nếu lỗi. Cấp phát memory cho variable/function declaration (hoisting).
- Execution Phase: Chạy code line-by-line, gán giá trị, throw runtime error (TypeError, ReferenceError...).
== vs ===
==(abstract equality): ép kiểu rồi so sánh giá trị.34 == "34"→ true.===(strict equality): so sánh **cả kiểu LẦN giá trị**.98 === "98"→ false.
Boolean Values
- Truthy: Mọi giá trị trừ falsy.
{},[],!falseđều truthy. - Falsy:
0,-0,0n,"",null,undefined,NaN,false.
Lưu ý: Bài viết gốc có hình ảnh minh họa — trong bản dịch tập trung vào nội dung text.