JavaScriptの!!(エクスクラメーション)2つの意味

JavaScript

JavaScriptの!!(エクスクラメーション)2つの意味について紹介します。

JavaScriptの!!(エクスクラメーション)2つの意味

たとえば、次のようなフォームにバリデーションをかけるケースでみかることがあります。

      rules: {
        required: value => !!value || 'Required.',
        email: ...
        }

!!(エクスクラメーション)2つは、値を真偽値に変換したい場合に使います。

厳密にいうと、!!(エクスクラメーション)2つの特殊な構文があるわけではありません。
!(エクスクラメーションマーク)一つの場合、NOTを意味します。
それを再度繰り返しているだけです。

たとえば、次のようなケースをみてみます。

      console.log(11); //11
      console.log(!11); //false
      console.log(!!11); //true

11というのは、truthyな値です。
それを、!(NOT)をつけることで、falseに変換でき、さらに、もう一つ!(NOT)をつけることで、trueを返しています。

truthyな値とfalsyな値については、JavaScriptの基礎文法まとめを参考にしてみてください。