文章导航

JavaScript void 运算符

2018-10-30 15:17| 作者: admin| 查看: 703| 评论: 0|来自: 蚂蚁部落

void运算符可以执行右侧的表达式,返回值始终为undefined。

利用此运算符可以很便利的完成一些小操作,比如最为常见的取消链接跳转动作。

语法结构:

[JavaScript] 纯文本查看 复制代码
void expression

参数解析:

(1).expression:一个表达式,执行此表达式。

特别说明:即便表达式有返回值,但是此运算符的返回值始终是undefined。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(void function(){
  console.log("蚂蚁部落");
  return 5;
}())

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/30/151840s7n1kbth97t9j5hk.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

void右侧是一个匿名自执行函数,返回值是5。

但是最终的返回值依然是undefined。

关于匿名函数相关内容可以参阅JavaScript 匿名函数一章节。

再来看一段最为常见的用法:

[HTML] 纯文本查看 复制代码
<a href="javascript:void(0);">蚂蚁部</a>

上述代码大家一定都不会陌生,点击它可以阻止链接的跳转动作。

用法非常简单,但是很多朋友并不太清楚其中的原理,下面分步进行一下介绍。

(1)."JavaScript:"是一个协议,当触发元素时,会执行它后面的代码。

(2).如果协议后面代码返回undefined,则阻止元素的默认行为,比如点击链接,页面跳转就是默认行为。

(3).如果协议后面没有任何代码,相当于返回值为undefined,阻止元素的默认行为。

(4).如果协议后面有代码,那么将执行代码,用执行的代码替换页面中的内容,可能在不同的浏览器有所差别,比如<a href="javascript:0;">蚂蚁部落</a>,在谷歌浏览器中没有任何动作,在火狐浏览器中会将页面内容替换为0,其他浏览器效果大家自行测试。再来看一段代码实例:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>蚂蚁部落</title>
<style>
#ant{
  width:100px;
  height:100px;
  background-color:#ccc;
}
</style>    
</head> 
<body> 
<div id="ant"></div>
<a href="JavaScript:void(ant.style.backgroundColor='green');">查看效果</a>
</div>
</body> 
</html>

点击链接会执行协议后面的代码,将div的背景颜色设置为绿色。

总结两点:

(1).id由于是唯一的,所以可以直接作为对象使用。

(2).尽管使用上述协议可以实现JavaScript代码的执行,但是并不推荐使用此协议。

推荐为链接绑定事件处理函数,代码修改如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>蚂蚁部落</title>
<style>
#ant{
  width:100px;
  height:100px;
  background-color:#ccc;
}
</style>  
<script>
window.onload=function(){
  bt.onclick=function(){
    ant.style.backgroundColor='green';
  }
}
</script>    
</head> 
<body> 
<div id="ant"></div>
<a href="JavaScript:void(0)" id="bt">查看效果</a>
</div>
</body> 
</html>

推荐使用上述方式来来设置div元素的背景颜色。

更多注册事件处理函数方式可以参阅JavaScript 注册事件处理函数一章节。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部