!!一般用来将后面的表达式转换为布尔型的数据(boolean) 因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型
代码如下:
let name = undefined;
let age = null;
console.log(name, age); // 结果为:undefined null
let name1 = !name; // 单个 ! 号代表转换为相反的布尔值。
console.log(name1); // 结果为:true
let name2 = !!name; // 两次转换,得到原本该有的布尔值。undefined —> false, null -> false, "" -> false, 0 -> false
console.log(name2); // 结果为:false
也可以说:
两次取反,得到布尔值。
当 this.searchObj 为真时,第一次取反 !this.searchObj 返回 false,第二次取反 !!this.searchObj 返回 true;
当 this.searchObj 为假时,第一次取反 !this.searchObj 返回 true,第二次取反 !!this.searchObj 返回 false
if (!!this.searchObj) {
this.showLength = this.searchObj.searchArr.length;}
本文深入探讨了JavaScript中使用双感叹号进行布尔值转换的方法及原理。通过实例演示如何将不同类型的值转换为布尔值,并解释了两次取反的逻辑过程。
667

被折叠的 条评论
为什么被折叠?



