Strict Mode (ES5) đặt chương trình/hàm vào bối cảnh nghiêm ngặt, ngăn hành động không an toàn và ném nhiều ngoại lệ hơn.
Các đặc điểm chính
- Biến ngầm khai báo bị cấm:
foo = "bar"(chưa cóvar/let/const) → ReferenceError. - Cấm
eval(): Không thể dùngevaltrong strict mode. - Cấm gán lại
arguments:arguments = [...]sẽ lỗi. - Cấm
with: Câu lệnhwithkhông hợp lệ. - this không tự ép kiểu:
thislàundefinedtrong hàm gọi không có context (thay vì trỏ tớiwindow). - Trùng tên tham số hàm báo lỗi:
function(a, a) {}→ SyntaxError. - Thuộc tính chỉ đọc không thể ghi: Gán vào
Object.freeze()property → TypeError.
Cách bật
"use strict"; // toàn script
// hoặc
function fn() { "use strict"; ... } // per function
Strict mode giúp code an toàn, dễ debug, và trình duyệt tối ưu tốt hơn.