JavaScriptの!!(エクスクラメーション)2つの意味
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の基礎文法まとめを参考にしてみてください。