双逻辑非操作符的作用
双逻辑非操作,会把一个值(数字,字符串…..)转换为布尔值。第一次逻辑非操作取反的布尔,第二次获得最初元素本身对应的布尔。
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 已经是布尔值,所以使用双逻辑非操作符提高了程序执行的效率。
这里说的先储存后的访问效果好,说的就是先储存布尔值。
*/