Konwersja wartości na liczbę - Number
W jaki sposób skonwertować dowolną wartość na liczbę?
Number() Number(value)
- Parametry:
- value - wartość do konwersji
- Wartość:
- skonwertowana prosta wartość liczbowa (nie obiekt)
- Wyjątki:
TypeError
- value nie posiada metodyvalueOf
, zwracającej prostą wartość, ani metodytoString
Konwertuje dowolną wartość na prostą wartość liczbową. W przypadku braku argumentów wywołania zwraca 0. Jeżeli konwersja będzie niemożliwa, zwracana jest wartość NaN. Jeżeli konwertowaną wartością jest obiekt dowolnego typu, najpierw wywoływana jest jego metoda valueOf
, a jeśli zwrócona wartość nie jest typu prostego, następuje wywołanie metody toString
i dopiero z niej wyznaczana jest ostateczna wartość liczbowa.
Inaczej niż konstrukcja new Number(...), nigdy nie tworzy nowego obiektu, a jedynie prostą wartość liczbową.
Różnica pomiędzy Number(...)
a funkcją parseFloat(...) jest taka, że pierwsza z nich na końcu tekstu ignoruje tylko białe znaki, podczas gdy druga - wszystkie znaki niebędące poprawnym zapisem liczbowym.
Aby sprawdzić, czy funkcja nie zwróciła przypadkiem niepoprawnego wyniku, użyj funkcji isNaN.
Przykład Number
Number(); // 0 Number(undefined); // NaN Number(null); // 0 Number(true); // 1 Number(false); // 0 Number(new Boolean()); // 0 Number(0); // 0 Number(1); // 1 Number(-1.2); // -1.2 Number(Infinity); // Infinity Number(new Number()); // 0 Number("test"); // NaN Number(" +1.2 "); // 1.2 Number("0xA"); // 10 Number("1 test"); // NaN Number("false"); // NaN Number(" "); // 0 Number(""); // 0 Number(new String()); // 0 Number([]); // 0 == Number("") Number([0]); // 0 == Number("0") Number([1]); // 1 == Number("1") Number([1, 2, 3]); // NaN == Number("1,2,3") Number([true]); // NaN == Number("true") Number({}); // NaN == Number("[object Object]") var obj = {}; obj.valueOf = undefined; obj.toString = undefined; Number(obj); // TypeError