1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为true,其余都为false。
2、!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,判断变量a为非空,未定义或者非空串才能执行方法体的内容。
好玩的东西!输出一下下面js的结果试一试
(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]
(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]