Przejdź do treści

Number - JS

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 metody valueOf, zwracającej prostą wartość, ani metody toString

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

Komentarze

Zobacz więcej komentarzy

Facebook