Ưu và nhược điểm của JavaScript
Ưu điểm (Advantages)
- Tốc độ: Client-side JS chạy ngay trên browser, không cần network call (trừ external resource).
- Đơn giản: Cú pháp dễ học, implement nhanh.
- Phổ biến: Dùng khắp web — frontend, backend (Node.js), mobile (React Native), desktop (Electron).
- Tương tác tốt: Kết hợp tốt với HTML/CSS, WebAssembly, server-side languages.
- Giảm tải server: Xử lý client-side → giảm request lên server.
- Rich Interface: Drag-drop, slider, animation, real-time update (AJAX/WebSocket).
Nhược điểm (Disadvantages)
- Bảo mật client-side: Code chạy trên máy user → có thể bị exploit (XSS, injection). Một số user disable JS.
- Cross-browser: Engine khác nhau (V8, SpiderMonkey, JavaScriptCore) interpret hơi khác — cần test/polyfill/transpile (Babel).
- Single-threaded: Blocking main thread → cần Web Worker cho heavy compute.
- Dynamic typing: Bug runtime thay vì compile-time (giải quyết bằng TypeScript).