Junior
Πώς να ελέγξετε αν ένας αριθμός είναι NaN;
sobes.tech AI
Απάντηση από AI
Χρησιμοποιούν τη λειτουργία isNaN(), η οποία ελέγχει αν η τιμή είναι "Μη αριθμός" (Not-a-Number).
// Παραδείγματα χρήσης του isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, επειδή το 'hello' δεν μπορεί να μετατραπεί σε αριθμό
console.log(isNaN('123')); // false, επειδή το '123' μπορεί να μετατραπεί στον αριθμό 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, επειδή το null μετατρέπεται σε 0
// Έλεγχος μετατροπής τύπων
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Υπάρχει επίσης η μέθοδος Number.isNaN(), η οποία ελέγχει πιο αυστηρά αν η τιμή είναι ακριβώς NaN, χωρίς προκαταρκτική μετατροπή.
// Παραδείγματα χρήσης της Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, δεν μετατρέπει
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
Η σύγκριση του NaN με τον εαυτό του ή με οποιαδήποτε άλλη τιμή επιστρέφει πάντα false, εκτός αν χρησιμοποιήσουμε το Object.is().
// Ιδιαιτερότητα της σύγκρισης με NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Σύγκριση με το Object.is()
console.log(Object.is(NaN, NaN)); // true
Ανάλογα με την εργασία, μπορεί να χρειάζεται να χρησιμοποιήσετε το isNaN() (αν η έμφαση είναι στον έλεγχο μετά τη μετατροπή σε αριθμό) ή το Number.isNaN() (για αυστηρό έλεγχο στο NaN). Η μέθοδος Number.isNaN() προτιμάται για ακριβή έλεγχο αν μια συγκεκριμένη τιμή είναι NaN.