JavaScript ma tylko jeden rodzaj number .
Numbers mogą być zapisywane z lub bez miejsc po przecinku.
Liczby JavaScript
JavaScript numbers mogą być zapisywane z lub bez miejsc po przecinku:
Przykład
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
Bardzo duże lub dodatkowe małe numery mogą być pisane z naukowego (wykładnik) notacji:
Przykład
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Liczby JavaScript Zawsze są 64-bitowe, zmiennoprzecinkowe
W przeciwieństwie do wielu innych językach programowania, JavaScript nie definiuje różne rodzaje numerów, jak liczby całkowite, krótki, długi, zmiennoprzecinkowych itd
numery JavaScript są zawsze przechowywane w podwójnej precyzji liczb zmiennoprzecinkowych, zgodnie z międzynarodową normą IEEE 754.
Zapisuje w formacie liczb w 64 bitach, gdzie liczba (frakcja) są przechowywane w bitach 0 do 51, wykładnik w bitach od 52 do 62, a znak w bitach 63:
Wartość (aka Frakcja / mantysa) | Wykładnik potęgowy | Znak |
---|---|---|
52 bitów (0 - 51) | 11 bitów (52 - 62) | 1 bit (63) |
Precyzja
Liczbami całkowitymi (numery bez okresu lub prezentacja wykładnicza) są uważane za dokładne do 15 cyfr.
Przykład
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Spróbuj sam " Maksymalna liczba miejsc po przecinku wynosi 17, ale arytmetyce zmiennoprzecinkowej nie zawsze jest skuteczny w 100%:
Aby rozwiązać powyższy problem, pomaga mnożenie i dzielenie:
Szesnastkowy
JavaScript interpretuje stałe liczbowe szesnastkowym, jeżeli są one poprzedzone 0x.
Nigdy nie zapisuj numer z zerem (jak 07).
Niektóre wersje JavaScript interpretuje liczby jako ósemkowej, jeżeli są one pisane z zerem.
Domyślnie JavaScript wyświetla liczby jako podstawy 10 miejsc po przecinku.
Ale można użyć toString() metody do numerów wyjściowych podstawy 16 (hex), podstawy (8), ósemkowej lub podstawy 2 (binarne).
Przykład
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Spróbuj sam " Nieskończoność
Nieskończoność (lub -Infinity) jest wartością JavaScript powróci, jeśli obliczyć liczbę zewnątrz jak największej liczbie.
Przykład
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Spróbuj sam " Dzielenie przez 0 (zero), jak również generuje Nieskończoność:
Nieskończoność jest liczbą: typeOf nieskończoności zwraca liczbę.
NaN - Not a Number
NaN jest JavaScript zastrzeżone słowo wskazuje, że wartość nie jest liczbą.
Próbując zrobić arytmetyczne z ciągiem bez numerycznej spowoduje NaN (Not a Number):
Jednakże, jeśli ciąg zawiera wartość numeryczną, wynik będzie liczbą:
Można użyć globalnej funkcji JavaScript isNaN() , aby dowiedzieć się, czy dana liczba jest liczbą.
Uważaj na NaN. Jeśli używasz NaN w operacji matematycznej, wynik również będzie NaN:
Lub wynik może być konkatenacji:
NaN jest liczbą, a typeof NaN zwraca numer:
Numery można Przedmioty
Zwykle numery JavaScript są tworzone z pierwotnych wartości literałów: var x = 123
Ale numery mogą być definiowane jako obiekty ze słowem kluczowym new: var y = new Number(123)
Przykład
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Spróbuj sam " Nie należy tworzyć obiekty numer. To spowalnia szybkość wykonania.
new kluczowe komplikuje kod. To może produkować pewne nieoczekiwane wyniki:
Podczas korzystania z == operator równości, równych numery wygląda równa:
Przykład
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Spróbuj sam " Podczas korzystania z operatorem równości ===, równe liczby nie są równe, ponieważ operator === oczekuje równości zarówno rodzajem i wartością.
Przykład
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Spróbuj sam " Albo jeszcze gorzej. Obiekty nie mogą być porównywane:
Przykład
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Spróbuj sam " obiekty JavaScript nie można porównywać.
Sprawdź się z ćwiczeń!
Ćwiczenie 1 » Ćwiczenie 2» Ćwiczenie 3 » Ćwiczenia 4»