Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

"javascript:void(0)" หมายความว่าอะไร?

หากการแทรก 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>