1.背景
最近在做练习时,遇到了对变量做空值判断的操作。
我是这么写的:
举例1:
var a = '从前端页面获取的字段值'; if(a == null || a === '' || a == undefined) { //内容 }
但是,当需要做判空的变量很多时,这种方法会大大增加我们的工作量,于是在老师的指点下我去了解了js
中的!
和!!
。
2.内容
在js
中,!
除了 做取反操作外,还可以将对象(变量)转换为boolean
类型
举例2:
// ! 可以将 null、 ''、 undefined 转换为 true // 理解为:对变量进行判空,如果对象为空则返回true,否则返回false !null = true !'' = true !undefined = true !"undefined" = false !999 = false
在js
中,!!
则是用来做 类型判断,如果像举例1
那样,我要对变量 a
进行非空判断,我们就可以使用!!
举例3:
/*个人理解: *1.先对变量a进行判空,将a转换为boolean类型(使用!) *2.再对a进行取反 *强调:不是取反再取反的意思。“第一次是判空,不是取反”====>见举例4 **/ if(!!a) { //内容 } //注意:使用 !! 时,变量a必须有实际意义
举例4:
!!false = false;//对boolean值false取反,再取反 !!"false" = true;//对字符串值"false"做判空,再取反