JavaScript are doar un singur tip de number .
Numbers pot fi scrise cu sau fără zecimale.
numere JavaScript
JavaScript numbers pot fi scrise cu sau fără zecimale:
Exemplu
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
Numere suplimentare , mare sau foarte mici pot fi scrise cu științific (exponent) notație:
Exemplu
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Numerele JavaScript sunt întotdeauna pe 64 de biți plutitoare Punct
Spre deosebire de multe alte limbaje de programare, JavaScript nu definește diferite tipuri de numere, cum ar fi numere întregi, scurte,, in virgula mobila lung etc.
Numerele JavaScript sunt întotdeauna stocate ca numere de dublu punct de precizie plutitoare, urmând standardul internațional IEEE 754.
Acest format stochează numere în 64 de biți, în cazul în care numărul (the fraction) este stocat în biți 0-51, exponent în biți 52 la 62, iar semnul în 63 de biți:
Valoarea (aka Fraction/Mantissa) | Exponent | Semn |
---|---|---|
52 biți (0 - 51) | 11 biți (52 - 62) | 1 bit (63) |
Precizie
Întregi (numbers without a period or exponent notation) sunt considerate ca fiind exacte până la 15 cifre.
Exemplu
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Încearcă - l singur » Numărul maxim de zecimale este de 17, dar aritmetice nu este întotdeauna 100% corecte:
Pentru a rezolva problema de mai sus, ajută la înmulțirea și împărțirea:
hexazecimal
JavaScript interpretează constante numerice ca hexazecimal în cazul în care acestea sunt precedate de 0x.
Niciodată nu a scrie un număr cu un zero (like 07) .
Unele versiuni JavaScript interpretează numere ca octal în cazul în care acestea sunt scrise cu un lider de la zero.
În mod implicit, Javascript afișează numere ca bază de 10 zecimale.
Dar puteți utiliza toString() metoda la numerele de ieșire ca bază 16 (hex) , baza 8 (octal) , sau de bază 2 (binary) .
Exemplu
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Încearcă - l singur » Infinit
Infinity (or -Infinity) este valoarea JavaScript va reveni dacă vă calcula un număr în afara cel mai mare număr posibil.
Exemplu
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Încearcă - l singur » Divizia de 0 (zero) , generează , de asemenea , Infinity:
Exemplu
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
Încearcă - l singur » Infinity este un număr: typeOf Infinity returnează numărul.
NaN - Nu este un număr
NaN este un cuvânt rezervat JavaScript care indică faptul că o valoare nu este un număr.
Încercarea de a face aritmetică cu un șir de caractere non-numerice va duce la NaN (Not a Number):
Cu toate acestea, în cazul în care șirul conține o valoare numerică, rezultatul va fi un număr:
Puteți utiliza funcția globală JavaScript isNaN() pentru a afla dacă o valoare este un număr.
Exemplu
var x = 100 / "Apple";
isNaN(x); // returns true because
x is Not a Number
Încearcă - l singur » Ferește-te de NaN. Dacă utilizați NaN într-o operație matematică, rezultatul va fi, de asemenea NaN:
Sau rezultatul ar putea fi o înlănțuire:
NaN este un număr, și typeof NaN returnează numărul:
Numerele pot fi obiecte
În mod normal , numerele de JavaScript sunt valori primitive create din literali: var x = 123
Dar numere pot fi , de asemenea , definite ca obiecte cu un nou cuvânt cheie: var y = new Number(123)
Exemplu
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Încearcă - l singur » Nu creați un număr de obiecte. Acesta încetinește viteza de execuție.
new cuvânt cheie complică codul. Acest lucru poate produce unele rezultate neașteptate:
Când se utilizează == operatorul de egalitate, un număr egal arată egal:
Exemplu
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Încearcă - l singur » Când se utilizează operatorul de egalitate ===, un număr egal nu sunt egale, deoarece operatorul === se așteaptă egalitatea în ambele tipuri și valoare.
Exemplu
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Încearcă - l singur » Sau chiar mai rău. Obiectele nu pot fi comparate:
Exemplu
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Încearcă - l singur » obiecte JavaScript nu pot fi comparate.
Testați-te cu exerciții!
Exercițiul 1 » Exercițiul 2» Exercițiul 3 » Exercițiul 4»