私はこのコードを見ました:
this.vertical = vertical !== undefined ? !!vertical : this.vertical;
!!
認識できない演算子として使用されているようです。これは何をするのでしょうか?
ベストアンサー1
これObject
は に変換されますboolean
。これが偽の場合 (例: 0
、、null
など) は になり、それ以外の場合は にundefined
なります。false
true
!object // Inverted Boolean
!!object // Noninverted Boolean, so true Boolean representation
したがって、これ!!
は演算子ではなく、単に演算子を 2 回使用しただけです!
。
一般的には、次のようにする方が簡単です。
Boolean(object) // Boolean
実際の例「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