if条件为什么要进行两次取反操作

来源:互联网 发布:ubuntu 禁止内核更新 编辑:程序博客网 时间:2024/04/29 05:10

今天看到这样的代码:

if ( !!a ){

……

}

很不明白为什么要进行两次非操作,于是把a取 null, 0, 1, undefined, "", 'abc', alert 这些值进行了测试,发现 if(a) 跟 if(!!a) 的判断结果完全是一样的,只不过 !!a 的类型是boolean型。

 

谁能告诉我这么做的理由是什么?