【JavaScript】存在チェックについて

5510 ワード

こんにちは。駆け出しフロントエンドです。

ここでは、自分の理解のために存在チェックについて記事をまとめていきたいと思います。

自分の理解度も深めるために調べた記事の二番煎じですが、自分の言葉でアウトプットって大事だよね!ということで参考にさせていただいた記事を真似ているところがあります。何卒ご容赦ください🙏

よく見る「!xxx」について

以下のコードをよく見かけます。

if (!xxx) { ... }

この処理を使う場面として、「プロパティの存在チェック」が場面としてよく挙げられます。(この値があるときはこの表示する!みたいな)

最初見た時になんぞこれ?となったので、改めて型や値の評価がどうなるか確認していきます。

結果
{} オブジェクト true
[] 配列 true
'test' 文字列 true
'' 文字 false
1 数値 true
-1 数値 true
0 数値 false
-0 数値 false
true 真偽値 true
fase 真偽値 false
undefined undefined false
null null false

MDNと見てみると、偽値 (falsy) として定義された値以外は全ての値は真値 (truthy) となるようですね。

JavaScript において、真値 (truthy) は論理値のコンテキストに現れた時に true とみなされる値のことです。偽値 (falsy) として定義された値 (つまり、false, 0, -0, 0n, "", null, undefined, NaN) を除くすべての値は真値です。