1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
---
title: Number.isNaN()
slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN
translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN
original_slug: Web/JavaScript/Referencia/Objectes_globals/Number/isNaN
---
<div>{{JSRef}}</div>
<p>El mètode <strong><code>Number.isNaN()</code></strong> determina si el valor passat com a argument és {{jsxref("Global_Objects/NaN", "NaN")}}. És una versió més robusta de la funció global {{jsxref("Global_Objects/isNaN", "isNaN()")}}.</p>
<h2 id="Sintaxi">Sintaxi</h2>
<pre class="syntaxbox"><code>Number.isNaN(valor)</code></pre>
<h3 id="Paràmetres">Paràmetres</h3>
<dl>
<dt><code>valor</code></dt>
<dd>El valor que es comprovarà si és {{jsxref("Global_Objects/NaN", "NaN")}}.</dd>
</dl>
<h2 id="Descripció">Descripció</h2>
<p>Degut als dos operadors d'igualtat, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} i {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, retornen <code>false</code> quan es comprova si {{jsxref("Global_Objects/NaN", "NaN")}} <em>és</em> {{jsxref("Global_Objects/NaN", "NaN")}}, la funció <code>Number.isNaN()</code> esdevé necesària. Aquesta situació és diferent a totes les altres posibles comparacions a JavaScript.</p>
<p>En comparació a la funció global {{jsxref("Global_Objects/isNaN", "isNaN()")}} function, <code>Number.isNaN()</code> no sofreix el problema de convertir forçosament el paràmetre donat a un nombre. Això implica que ara és segur passar valors que normalment serien convertits a {{jsxref("Global_Objects/NaN", "NaN")}} però en realitat no tenen el mateix valor que {{jsxref("Global_Objects/NaN", "NaN")}}. Això també implica que només valors de tipus number, que també siguin {{jsxref("Global_Objects/NaN", "NaN")}}, retornaran <code>true</code>.</p>
<h2 id="Exemples">Exemples</h2>
<pre class="brush: js">Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// exemples que esdevindrien true amb la funció global isNaN()
Number.isNaN("NaN"); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false
// Tots els següents retornen false
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>
<pre class="brush: js">Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && value !== value;
}</pre>
<h2 id="Especificacions">Especificacions</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificació</th>
<th scope="col">Estat</th>
<th scope="col">Comentaris</th>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-number.isnan', 'Number.isnan')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>Definició inicial.</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{CompatChrome("25")}}</td>
<td>{{CompatGeckoDesktop("15")}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>9</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{CompatNo}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatGeckoMobile("15")}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>iOS 9+</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Vegeu_també">Vegeu també</h2>
<ul>
<li>{{jsxref("Global_Objects/Number", "Number")}}</li>
<li>{{jsxref("Global_Objects/isNaN", "isNaN()")}}</li>
</ul>
|