双逻辑非(!!)操作符

来源:互联网 发布:上古世纪精灵捏脸数据 编辑:程序博客网 时间:2024/06/05 17:11

双逻辑非操作符的作用

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

alert(!!false);     //falsealert(!!"blue");    //truealert(!!0);         //falsealert(!!NaN)        //falsealert(!!12345)     //true

双逻辑非操作符的优点

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

var res1 = (0 && undefined);     //0var res2 = !!(0 && undefined);   //false/*对于 res1 我们每次还需要隐式转换成布尔值,if(Boolean(res1)),而 res2 已经是布尔值,所以使用双逻辑非操作符提高了程序执行的效率。这里说的先储存后的访问效果好,说的就是先储存布尔值。*/
0 0