js中的 !!

就是这样:!!variable。哈哈,其实我也是在代码里面看见别人这样用,当时很好奇,所以就搜了一下,哈哈。还真的有很多相关的好文啊。作者是这样说的,

一般用来将后面的表达式转换为布尔型的数据

是不是晕晕的?如果不清楚,自己写几个小例子测试一下不就知道了?

        //未使用!!转换
    var test;
    var receiver = test;
    console.log(receiver);//undefined

    var test=null;
    var receiver = test;
    console.log(receiver);//null

    var test = 0;
    var receiver = test;
    console.log(receiver);//0

    var test = "";
    var receiver = test;
    console.log(receiver);//""
    //使用!!进行转换
    var test;
    var receiver = !!test;
    console.log(receiver);//false

    var test=null;
    var receiver = !!test;
    console.log(receiver);//false

    var test = 0;
    var receiver = !!test;
    console.log(receiver);//false

    var test = "";
    var receiver = !!test;
    console.log(receiver);//false

  可见!!对这几种特殊的值进行了布尔值的转换。

  那么,如果test=“123”,true,1,{},function(){}呢?

  答案是:“123”-->true,true-->true,1-->true,{}-->true,function(){}-->true

  实践出真知,看见别人的结论当然没有自己动手试试印象深刻喽,哈哈,我直接给出答案了,怪我喽?快自己动手试试吧

原文地址:https://www.cnblogs.com/rellame/p/5284571.html