Najnowsze tutoriale tworzenie stron internetowych
 

JavaScript Liczby


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%:

Przykład

var x = 0.2 + 0.1;         // x will be 0.30000000000000004
Spróbuj sam "

Aby rozwiązać powyższy problem, pomaga mnożenie i dzielenie:

Przykład

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
Spróbuj sam "

Szesnastkowy

JavaScript interpretuje stałe liczbowe szesnastkowym, jeżeli są one poprzedzone 0x.

Przykład

var x = 0xFF;             // x will be 255
Spróbuj sam "

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ść:

Przykład

var x =  2 / 0;          // x will be Infinity
var y = -2 / 0;          // y will be -Infinity
Spróbuj sam "

Nieskończoność jest liczbą: typeOf nieskończoności zwraca liczbę.

Przykład

typeof Infinity;        // returns "number"
Spróbuj sam "

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):

Przykład

var x = 100 / "Apple";  // x will be NaN (Not a Number)
Spróbuj sam "

Jednakże, jeśli ciąg zawiera wartość numeryczną, wynik będzie liczbą:

Przykład

var x = 100 / "10";     // x will be 10
Spróbuj sam "

Można użyć globalnej funkcji JavaScript isNaN() , aby dowiedzieć się, czy dana liczba jest liczbą.

Przykład

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number
Spróbuj sam "

Uważaj na NaN. Jeśli używasz NaN w operacji matematycznej, wynik również będzie NaN:

Przykład

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN
Spróbuj sam "

Lub wynik może być konkatenacji:

Przykład

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5
Spróbuj sam "

NaN jest liczbą, a typeof NaN zwraca numer:

Przykład

typeof NaN;             // returns "number"
Spróbuj sam "

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»