a=null;
b=undefined;
c="";
d=" "; //字符串只有空格
1.当只采用逻辑非运算“!”时,结果如下:
!a //true
!b //true
!c //true
!d //false
!可将变量转换成boolean类型,null、undefined和空字符串取反都为true,其余都为false。
2.采用!!,双重否定变肯定,和!相反。
!!a //false
!!b //false
!!c //false
!!d //true
3.“!!”可以排除null和undefined以及空字符串的情况,但通常我们还需要排除字符串是只有空格的情况存在,这种情况结合 "!!"和String的trim()函数就可以实现。
!d.trim(); //true
!!d.trim(); //false trim()函数用于去除字符串前后的空格,这里d相当于空字符串,和c一样。
所以,以上四种情况可以用如下代码验证
!!test && !!test.trim() //非null,非undefined,非空,非空格。返回false