javascript中为什么有时候会使用双逻辑非运算符的?

目录(?)[+]

双逻辑非操作符的作用

双逻辑非操作,会把一个值(数字,字符串…..)转换为布尔值。第一次逻辑非操作取反的布尔,第二次获得最初元素本身对应的布尔。

alert(!!false);     //false

alert(!!"blue");    //true

alert(!!0);         //false

alert(!!NaN)        //false

alert(!!12345)     //true

双逻辑非操作符的优点

双逻辑非操作符提高了程序执行的效率,比先存储后访问的效果更好。

<HTML>
<HEAD>
	<script type="text/javascript">
		var res1 = (0 && undefined);     //0
		var res2 = !!(0 && undefined);   //false
		console.log("第一个"+res1);
		console.log("第二个"+res2);
	</script>
</HEAD>
<BODY></BODY>
</HTML>
/*
对于 res1 我们每次还需要隐式转换成布尔值,if(Boolean(res1)),而 res2 已经是布尔值,所以使用双逻辑非操作符提高了程序执行的效率。
这里说的先储存后的访问效果好,说的就是先储存布尔值。
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值