我看到一些代码似乎使用了我不认识的运算符,以两个感叹号的形式,如下所示:!!
。有人可以告诉我这个操作员是做什么的吗?
我看到这个的背景是,
this.vertical = vertical !== undefined ? !!vertical : this.vertical;
它转换Object
to boolean
。如果它是假的(例如,0
, null
, undefined
等),这将是false
, 否则,true
.
!object // Inverted Boolean
!!object // Noninverted Boolean, so true Boolean representation
So !!
不是操作员;这只是!
操作员两次。
这样做可能更简单:
Boolean(object) // Boolean
真实世界示例“测试 IE 版本”:
const isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);
console.log(isIE8); // Returns true or false
If you ⇒
console.log(navigator.userAgent.match(/MSIE 8.0/));
// Returns either an Array or null
但如果你⇒
console.log(!!navigator.userAgent.match(/MSIE 8.0/));
// Returns either true or false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)