我看到一些程式碼似乎使用我不識別的運算子,形式為兩個感嘆號,如下所示:!!
.有人可以告訴我這個運算子做了什麼嗎?
我看到的背景是
this.vertical = vertical !== undefined ? !!vertical : this.vertical;
我看到一些程式碼似乎使用我不識別的運算子,形式為兩個感嘆號,如下所示:!!
.有人可以告訴我這個運算子做了什麼嗎?
我看到的背景是
this.vertical = vertical !== undefined ? !!vertical : this.vertical;
脅迫oObject
到布林值.如果它是Falsey(例如0,null
,undefined
等),它將是false
,否則,true
.
!oObject //Inverted boolean
!!oObject //Non inverted boolean so true boolean representation
所以!!
不是運算子,它只是!
運算子兩次.
實際世界示例“Test IE版本”:
let isIE8 = false;
isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);
console.log(isIE8); // returns true or false
如果你
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