js中双感叹号“!!”到底是什么意思?

前端菜鸟,今天我看到了一段代码:

if (!!this.searchObj) {
          this.showLength = this.searchObj.searchArr.length;}

那if判断语句中的 “!!” 到底是什么意思呢?求大神解答

阅读 4.9k
4 个回答

强制转换类型
1: !!a 把a强制转换为 布尔类型
2: +a 把a强制转换为number类型
3: a+'' 把a强制转换为 字符串类型

双重否定等于肯定,返回boolean值

相当于转化为布尔类型

两次取反,得到布尔值。

this.searchObj 为真时,第一次取反 !this.searchObj 返回 false,第二次取反 !!this.searchObj 返回 true
this.searchObj 为假时,第一次取反 !this.searchObj 返回 true,第二次取反 !!this.searchObj 返回 false

推荐问题