!! 其实就是两次取 ‘ 非 ’ 的运算。
先看一下其他变量类型和Boolean类型的相互转化:
0,-0,null," ",false,undefined和NaN转化为false,其他为true;
var myBoolean=new Boolean();
var myBoolean=new Boolean(0);
var myBoolean=new Boolean(null);
var myBoolean=new Boolean("");
var myBoolean=new Boolean(false);
var myBoolean=new Boolean(NaN); // false
-------------------------------------------------------------
var myBoolean=new Boolean(1);
var myBoolean=new Boolean(true);
var myBoolean=new Boolean("true");
var myBoolean=new Boolean("false");
var myBoolean=new Boolean("Bill Gates"); // true
一般在判断里会用到两次取非的运算