Movatterモバイル変換


[0]ホーム

URL:


  1. 給開發者的 Web 技術文件
  2. JavaScript
  3. JavaScript 參考文件
  4. 標準內建物件
  5. NaN

此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。

View in EnglishAlways switch to English

NaN

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

全域屬性NaN 表示「非數值」(Not-A-Number)的數值。

NaN 的屬性特性
可寫
可列舉
可配置

嘗試一下

function sanitize(x) {  if (isNaN(x)) {    return NaN;  }  return x;}console.log(sanitize("1"));// Expected output: "1"console.log(sanitize("NotANumber"));// Expected output: NaN

語法

NaN

描述

NaN 的屬性屬於全域物件

如同Number.NaN 一般,NaN 的初始數值是「非數值」。在當今的瀏覽器中,NaN 屬性不可設定(non-configurable)也不可覆寫(non-writable)。雖然可能有例外,也請不要覆蓋它。

寫程式很少會直接動用NaN。通常是在Math 函式計算失敗(Math.sqrt(-1))或函式解析數字失敗(parseInt("blabla"))後才會回傳。

偵測是否為NaN

NaN 不等於(==!====!==)任何值,包括 NaN 本身。請使用Number.isNaN()isNaN() 來確認某個數值是否為 NaN。Or perform a self-comparison: NaN, and only NaN, will compare unequal to itself.

js
NaN === NaN; // falseNumber.NaN === NaN; // falseisNaN(NaN); // trueisNaN(Number.NaN); // truefunction valueIsNaN(v) {  return v !== v;}valueIsNaN(1); // falsevalueIsNaN(NaN); // truevalueIsNaN(Number.NaN); // true

但請注意isNaN()Number.isNaN() 之間是有區別的:前者會在目前數字是NaN 的時候回傳true,或在裡面包藏一個號碼後變成NaN;而後者,只有在數值是NaN 的時候才會回傳true

規範

Specification
ECMAScript® 2026 Language Specification
# sec-value-properties-of-the-global-object-nan

瀏覽器相容性

參見

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp