ใช้ Boolean() แปลง NaN เป็น Boolean จะได้ false
ตัวอย่างโค้ด
<!DOCTYPE html>
<html>
<body>
<p>Convert NaN to Boolean</p>
<script>
var myNaN = NaN;
document.write("Boolean : " + Boolean(myNaN)); // ผลลัพธ์: false
</script>
</body>
</html>
Type Conversion Table: NaN
| Method | Result | Type |
|---|---|---|
Boolean(NaN) | false | Boolean |
Number(NaN) | NaN | Number |
String(NaN) | "NaN" | String |
!!NaN | false | Boolean |
NaN == NaN | false | Loose Equality |
NaN === NaN | false | Strict Equality |
คำอธิบาย
NaNเป็น Falsy Value (1 ใน 7 ค่า:false, 0, -0, 0n, "", null, undefined, NaN)Boolean(NaN) === falseตาม Spec: ToBoolean(NaN) = false- NaN ไม่เท่ากับตัวเอง:
NaN !== NaN— ใช้Number.isNaN()หรือObject.is(NaN, NaN)เช็คแทน
Best Practice
- เช็ค NaN:
Number.isNaN(value)(ไม่ Coerce Argument) - Polyfill:
Number.isNaN = Number.isNaN || (v => v !== v) - หลีกเลี่ยง Global
isNaN()— Coerce Argument (เช่นisNaN("hello") === true)