void是JavaScript中重要的一元运算符,优先级比较高,运行给定表达式,返回undefined,准确说就是不返回值。
如果将0作为操作数传递给void运算符,JavaScript会将0强制为“false”并返回,但void不关心结果并仅返回undefined,这意味着 “什么都不做”。
void(0)通常用于将表达式插入网页后避免产生副作用的情况。
HTML网页中经常会有如下使用形式:
<a href="javascript:void(0)">Hello World!</a>当用户单击页面上的超链接时,一般会加载一个新页面,但这并不总是所需的操作过程。例如,当用户单击页面上的超链接时,你可能只是希望更新表单中字段的值或变量的值。为了防止在单击链接时重新加载页面,可使用void(0)函数。
// 弹窗提示loading,页面跳转#指定地点,默认在页面顶部
<a href="#" onclick="alert('loading!')">点击</a>
// 弹窗提示loading,页面跳转#指定地点test
<a href="#test" onclick="alert('loading!')">点击</a>
<div id='test'>hello</div>
// 弹窗提示no reload,页面纹丝不动
<a href="javascript:void(0);" onclick="alert('no reload')">点击</a>