So sánh hai cách viết
Khi tạo liên kết chỉ để gán sự kiện JavaScript (không chuyển trang), "javascript:void(0)" tốt hơn "#" vì:
- Không cuộn trang lên đầu (anchor "#" làm nhảy về top).
- Không thêm mục vào lịch sử trình duyệt.
- Hiệu năng tốt hơn một chút.
Cơ chế của void(0)
Toán tử void đánh giá biểu thức và trả về undefined. Cú pháp javascript:void(0) thực thi mã nhưng không trả giá trị nào cho trình duyệt, nên trang không tải lại.
Ví dụ thực hành
<!DOCTYPE html>
<html>
<head>
<title>Hiểu javascript:void(0)</title>
</head>
<body>
<a href="javascript:void(0);" ondblclick="alert('Click it twice!')">
Click me not once, but twice.
</a>
</body>
</html>
Lời khuyên hiện đại
Thay vì dùng href="javascript:void(0)", hãy dùng thẻ <button> hoặc <span> với CSS cursor: pointer và gán sự kiện click bằng addEventListener. Cách này ngữ nghĩa hơn, truy cập tốt hơn và tránh rối loạn URL.