おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

否定演算子(!)を2回使ってundefinedやnull判定を行う

はじめに

否定演算子を2回使ってundefinedやnull判定を行う処理を見る機会があったので備忘録として残します。

サンプルコード

使う場面は少し限られてきますが、例えば三項演算子を用いるときに値がundefinedではないかで条件分岐を行うとします(nullでも同様の動きになります)。
通常なら以下のように書くかと思います。

let a;
const b = a !== undefined
    ? 'not undefined'
    : 'undefined';

上記でも良いのですが、否定演算子を2回利用して(!!)判定することも可能です。

let a;
const b = !!a
    ? 'not undefined'
    : 'undefined';

仕組みとしては以下のような感じとなります。

a = undefined
!a => true
!!a => false

おわりに

そんなに使うことはないと思いますが、いざコード上で見かけたときにもしっかり読み解けるように覚えておこうと思います。