osgsm.io
HomeNotesNullish coalescing operator の優先順位は低いため計算に使うときなどは注意が必要

Nullish coalescing operator の優先順位は低いため計算に使うときなどは注意が必要

Published Mar 26, 2025
Updated Mar 26, 2025

JavaScript の nullish coalescing operator (??) の優先順位は低いため、計算とあわせて使うときに意図せぬ結果になることがある。ちなみに、operator の優先順位は Operator precedence - JavaScript | MDN で確認できる。

例えば、次のコードでは、user.age が設定されていない場合のデフォルト値として 18 を設定しているつもりだが、 2 + user.age が優先されて NaN になる。

const user = {
  id: 1
}
 
const result = 2 + user.age ?? 18;
console.log(result); // NaN

意図した通りの結果を得るためには、次のように grouping operator () を使う。

const user = {
  id: 1
}
 
const result = 2 + (user.age ?? 18);
console.log(result); // 20

参考