--- title: Number.isNaN() slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN tags: - ECMAScript 2015 - JavaScript - Method - Number translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN --- <div>{{JSRef}}</div> <p>Die <strong><code>Number.isNaN()</code></strong> Methode stellt fest, ob der Übergabewert {{jsxref("NaN")}} ist und der Typ des Parameters {{jsxref("Number")}} ist . Dieses ist eine robustere Version der globalen Methode {{jsxref("isNaN", "isNaN()")}}</p> <div>{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}</div> <h2 id="Syntax" name="Syntax">Syntax</h2> <pre class="syntaxbox"><code>Number.isNaN(<var>testWert</var>)</code></pre> <h3 id="Parameters" name="Parameters">Parameter</h3> <dl> <dt><code>testWert</code></dt> <dd>Der Wert, der auf {{jsxref("NaN")}} getestet werden soll.</dd> </dl> <h3 id="Rückgabewert">Rückgabewert</h3> <p><strong>true</strong> wenn der Wert {{jsxref("NaN")}} und der Typ {{jsxref("Number")}} ist. Anderfalls <strong>false</strong>.</p> <h2 id="Beschreibung">Beschreibung</h2> <p>Weil beide Gleichheitsoperatoren, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} und {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, den Vergleich, ob {{jsxref("NaN")}} <em>gleich</em> {{jsxref("NaN")}} ist, zu <code>false </code>auswerten, hat die Methode <code>Number.isNaN()</code> an Bedeutung gewonnen. Diese Situation ist anders als bei allen anderen Vergleichen von Werten in JavaScript.</p> <p>Im Vergleich zu der globalen Methode {{jsxref("isNaN", "isNaN()")}} hat die Methode <code>Number.isNaN()</code> nicht das Problem, dass Werte zu einer Nummer konvertiert werden. Das bedeutet, das Werte, die normalerweise zu {{jsxref("NaN")}} konvertiert würden, aber momentan nicht dem Wert {{jsxref("NaN")}} entsprechen, ohne Probleme der Methode übergeben werden können. Das wiederum bedeutet, dass nur Werte vom Typ {{jsxref("Number")}}, die zudem {{jsxref("NaN")}} entsprechen <code>true </code>als Resultat haben.</p> <h2 id="Beispiele">Beispiele</h2> <pre class="brush: js">Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // Beispiele, bei denen isNaN() true zurück gibt Number.isNaN('NaN'); // false Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN('blabla'); // false // Diese alle geben false zurück Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN('37'); Number.isNaN('37.37'); Number.isNaN(''); Number.isNaN(' '); </pre> <h2 id="Polyfill">Polyfill</h2> <p>Das Folgende funktioniert, weil <code>NaN</code> der einzige Wert ist, welcher nicht gleich mit sich selbst ist.</p> <pre class="brush: js">Number.isNaN = Number.isNaN || function(value) { return value !== value; } </pre> <h2 id="Spezifikationen">Spezifikationen</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">Spezifikation</th> <th scope="col">Status</th> <th scope="col">Kommentar</th> </tr> <tr> <td>{{SpecName('ES2015', '#sec-number.isnan', 'Number.isnan')}}</td> <td>{{Spec2('ES2015')}}</td> <td>Initiale Definition.</td> </tr> <tr> <td>{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}</td> <td>{{Spec2('ESDraft')}}</td> <td> </td> </tr> </tbody> </table> <h2 id="Browserkompatibilität">Browserkompatibilität</h2> <p>{{Compat("javascript.builtins.Number.isNaN")}}</p> <h2 id="Siehe_auch">Siehe auch</h2> <ul> <li>{{jsxref("Number")}}</li> <li>{{jsxref("isNaN", "isNaN()")}}</li> </ul>