OR演算子を使ったデフォルト値の設定とその問題点について

date
Sep 17, 2023
repo_url
slug
default-value-or
status
Published
summary
type
Post
thumbnail_url
tags
javascript
outer_link
変数にデフォルト値を設定したい場合、OR(||)演算子を使って簡単に行うことができます。
let person = {name: 'Emma'};
let age = person.age || 35; // ageがundefinedの場合、値35を設定
console.log(`Age of ${person.name} is ${age}`);
しかし、この方法には問題があります。
例えば人が0歳(新生児の場合)だとしたらどうでしょうか? Ageは35と計算されます(0 || 35 = 35)。
そこで、nullish coalescing演算子(??)を使います。
これは、左のオペランドがnullまたはundefinedの場合に右のオペランドを返し、それ以外の場合には左のオペランドを返す論理演算子です。
上記のコードを??演算子を使って書き換えると、以下のようになります。
let person = {name: 'Jack'};
let age = person.age ?? 35; // ageが0の場合、値0を設定。undefinedやnullの場合は35を設定
console.log(`Age of ${person.name} is ${age}`);
 

© Hayato Kamiyama 2023 - 2024 - Build with Next.js & Notion