NaN・有限数・整数を厳密にチェックする
// ── NaN(Not a Number)とは ─────────────────────────────
// 「数値でない値」を表す特殊な値。計算が成立しないと発生
console.log(0 / 0); // NaN ← 不定の計算
console.log(Math.sqrt(-1)); // NaN ← 実数の平方根は存在しない
console.log(parseInt('abc')); // NaN ← 変換失敗
// ⚠️ NaN === NaN は false(JavaScriptの特殊ルール)
console.log(NaN === NaN); // false ← 比較できない!
// ✅ Number.isNaN() で判定する(推奨)
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN('hello')); // false ← 文字列はNaNではない
console.log(Number.isNaN(undefined)); // false
// ⚠️ グローバルの isNaN() は型変換するので注意
console.log(isNaN('hello')); // true ← 文字列をNumber変換→NaNになるので
console.log(Number.isNaN('hello')); // false ← 厳密(こちらが推奨)
// ── 実用例: 数値入力のバリデーション ─────────────────
const input = '123abc';
const num = Number(input);
if (Number.isNaN(num)) {
console.log('有効な数値ではありません');
}グローバルのisNaN/isFiniteは型変換を行うため、Number.isNaN/Number.isFiniteのほうが厳密で安全。