最近更新
阅读排行
关注本站

JS中的!!

阅读:5576 次   编辑日期:2015-11-02

目录:

概述:

前一段时间捋了捋现在公司的代码,突然间发现有些地方if语句中用的是"!!",类似if(!!flag),我当时以为是写错了,但是后来一查发现了之中的意义。

JS 中的 !!

我们先看个例子:
    <script type="text/javascript">
        var rem={flag:true};
        var test=!!rem.flag;
        if(test){
            alert("true");
        }
    </script>
这段代码其实等效于:
    <script type="text/javascript">
        var rem={flag:true};
        var test=rem.flag||false;
        if(test){
            alert("true");
        }
    </script>
!! 的意思是确保返回值是 Boolean 类型,如果取到的值是null与undefined。用!操作符时都会产生true的结果,!!确保返回的是Boolean 类型。
如果明确设置了rem.flag的值(true或false,不是undefined或null 等等),rem.flag 和 test的值一样。
如果没设置rem.flag的值(可能是undefined或null),那么test的值会是false。
    <script type="text/javascript">
       var test=!!rem.flag;
       var test=rem.flag||false;
    </script>
所以以上两行代码的意思是一样的。
将本篇文章分享到:
top