JavaScriptでif句の外で&&と||を使う

if句の中で条件を書くときに&&||演算子を使ったことがあるかもしれませんね。 しかし、JavaScriptでは、ブール値truefalseではなく、文字列や数値などの式の値で評価されることをご存知ですか?

これにより、if-clause以外の式で&&演算子や||演算子を使用することが可能になります。

If-clause は真偽値を操作する

&&|| 演算子が文字列と数値に評価されるという事実は、条件が JavaScript で異なるように評価されるので if-clause を破ることはないです。

条件がtrueまたはfalseであることに基づいてif句がその次の動きを決定するのではなく、条件がtruthyまたはfalsyであることに基づいて決定する。

定義は以下の通り。 false, null, undefined, '', 0 またはNaNであれば値はfalsyである。

この情報を使ってみましょう。

Use && to safe-guard against undefined

よくある状況は、ドット記法を使ってネストしたオブジェクトのプロパティにアクセスすることです。 たとえば、request.session.id のようにです。 この場合、もし途中のオブジェクトが undefined であれば、”Uncaught TypeError:

1
const sessionId = request.session && request.session.id;

ここで、式はエラーを発生させずに安全に undefined と評価される。

&&の定義は

&&-演算子は、それがfalsyであれば左辺の式に、そうでなければ右辺の式に評価されます。

Use || to provide default value

もうひとつの一般的な使用例は、値を取得し、それが存在しない場合は、デフォルト値を使用することです。

1
const name = user.name || 'Guest';

|| の定義は次のとおりです。

||-演算子は、それが真であれば左側の式を、さもなければ右側の式に評価されます。 しかし、いつものように、読みやすさを第一に考えてください。 最適な場所で賢く使ってください。 例えば、この記事を彼らに渡すことで、チームの全員がそれらの使用方法を知っていることを確認することを忘れないでください。

コメントを残す

メールアドレスが公開されることはありません。