×
Creating solutions

Ako zistiť či premenná má hodnotu NaN (JavaScript)

Pred nedávnom som potreboval overiť, či premenná má hodnotu NaN. Problém bol v tom, že väčšina riešení na internete bolo zameraných na zistenie či hodnota je NaN (napr. hodnoty typu String, Object, Number), ale nie či premenná má hodnotu NaN, teda value = NaN.
Nakoniec som našiel nasledujúce riešenie, ktoré je kombináciou detekcie typu premennej a funkcie isNaN().
Príklad: Zistenie či premenná má hodnotu NaN.
1
2
3
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
Príklad: Veľký test hodnôt na detekciu NaN.
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
var value = "1a";
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = "1";
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = "a";
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = null;
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = undefined;
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = 0;
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = true;
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = false;
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = [];
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = {};
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}
value = NaN;
if (typeof value === "number" && isNaN(value)) {
console.log(value + " is NaN.");
}

Záver

Ako vidieť z testu hodnôt, samotná funkcia isNaN() nestačí a je ju potrebné kombinovať s typeof.


JavaScript,isNaN,NaN
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest