1. ホーム
  2. javascript

[解決済み] とは何ですか! (not not)演算子とは何ですか?

2022-03-14 20:02:23

質問

見覚えのない演算子が使われているようなコードを見かけました。 !! . どなたかこの演算子が何をするものなのか教えてください。

これを見たときの文脈は

this.vertical = vertical !== undefined ? !!vertical : this.vertical;

解決方法は?

変換する Objectboolean . もし、それがfalseyだったら(例えば 0 , null , undefined など)になると false で、それ以外の場合は true .

!oObject  // inverted boolean
!!oObject // non inverted boolean so true boolean representation

だから !! は演算子ではなく、単に ! 演算子を 2 回使用します。

実例 "IEバージョンをテスト"。

const 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