หากการแทรก expression ลงในหน้าเว็บทำให้เกิดผลลัพธ์ที่ไม่ต้องการ ให้ใช้ JavaScript void เพื่อกำจัดมัน การเพิ่ม "javascript:void(0)" จะคืนค่า undefined primitive value
Void operator ใช้ประเมิน (evaluate) expression ที่กำหนด แล้วคืนค่า undefined ได้ค่า undefined primitive โดยใช้ void(0)
void(0) สามารถใช้กับ hyperlinks เพื่อให้ได้ undefined primitive value
ตัวอย่าง
<!DOCTYPE html>
<html>
<head>
<title>Understanding 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>
เราใช้ javascript:void(0) เพื่อป้องกันไม่ให้หน้าเว็บโหลดใหม่ (reload) เมื่อคลิกครั้งแรก
โค้ดจะทำงานเฉพาะเมื่อคลิกสองครั้ง (double-click) หากคลิกครั้งเดียว ไม่เกิดอะไร แต่ alert จะโผล่เมื่อคลิกสองครั้ง เนื่องจากใช้ event handler ondblclick
การใช้งานทั่วไป
- ป้องกันการ navigate/refresh หน้าเว็บเมื่อคลิกลิงก์ที่รัน JS
- ใช้กับ
<a>tag ที่ทำหน้าที่เป็นปุ่ม (button-like) แทนการนำทาง - ทางเลือกที่ดีกว่า: ใช้
<button>หรือevent.preventDefault()
// แทนที่จะใช้ href="javascript:void(0)" <a href="#" onclick="event.preventDefault(); doSomething()">Click</a> // หรือดีกว่า ใช้ button <button onclick="doSomething()">Click</button>