1. Từ khóa void
Toán tử một ngôi đánh giá biểu thức nhưng trả về undefined. Dùng để ngăn hành vi mặc định (như link reload trang).
<a href="javascript:void(0)">Link không làm gì</a>
<a href="javascript:void(alert('Hello'))">Chạy alert, không load trang</a>
Cú pháp: void expression hoặc void(expression).
2. Hàm eval()
Thực thi chuỗi như mã JavaScript. Không khuyến khích do:
- Hiệu năng kém (không tối ưu được).
- Rủi ro bảo mật (XSS injection).
- Scope phức tạp.
var a = 30, b = 12;
console.log(eval("a * b")); // 360
console.log(eval("5 + 10")); // 15
3. Function Constructor
Tạo function mới từ chuỗi tham số và body. Cũng không khuyến khích (tương tự eval).
var multiply = new Function('p', 'q', 'r', 'return p * q * r');
console.log(multiply(5, 2, 9)); // 90
Bảng so sánh
| Đặc điểm | void | eval() | Function() |
|---|---|---|---|
| Mục đích | Đánh giá, trả undefined | Thi hành code string | Tạo function động |
| Trả về | undefined | Kết quả biểu thức | Function object |
| Bảo mật | An toàn | Rủi ro cao | Rủi ro cao |
| Hiệu năng | Tốt | Kém | Kém |
| Khuyến nghị | Dùng khi cần | Tránh | Tránh |