JavaScript ha un solo tipo di number .
Numbers possono essere scritti con o senza decimali.
I numeri JavaScript
JavaScript numbers possono essere scritti con o senza decimali:
Esempio
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
Extra grandi o extra small numeri possono essere scritti con la notazione scientifica (esponente):
Esempio
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
I numeri JavaScript sono sempre a 64-bit in virgola mobile
A differenza di molti altri linguaggi di programmazione, JavaScript non definisce diversi tipi di numeri, come gli interi,, virgola mobile a breve, lungo etc.
numeri JavaScript sono sempre memorizzati come numeri in virgola doppia precisione galleggianti, seguendo lo standard internazionale IEEE 754.
Ciò memorizza formattare i numeri in 64 bit, in cui è memorizzato il numero (la frazione) nei bit da 0 a 51, l'esponente in bit da 52 a 62, e il segno nel bit 63:
Valore (aka Frazione / Mantissa) | Esponente | Segno |
---|---|---|
52 bit (0 - 51) | 11 bit (52 - 62) | 1 bit (63) |
Precisione
I numeri interi (numeri senza un periodo o esponente di notazione) sono considerate accurate fino a 15 cifre.
Esempio
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Prova tu stesso " Il numero massimo di decimali è 17, ma aritmetica in virgola mobile è preciso, non sempre al 100%:
Per risolvere il problema di cui sopra, aiuta a moltiplicare e dividere:
esadecimale
JavaScript interpreta costanti numeriche come esadecimale se sono preceduti da 0x.
Non scrivere mai un numero con uno zero (come 07).
Alcune versioni JavaScript interpretano numeri come ottale se sono scritti con uno zero.
Per impostazione predefinita, Javascript visualizza numeri come base di 10 decimali.
Ma è possibile utilizzare il toString() metodo per numeri di uscita come base 16 (esadecimale), base 8 (ottale), o la base 2 (binario).
Esempio
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Prova tu stesso " Infinito
Infinity (o -Infinity) è il valore tornerà JavaScript se si calcola un numero di fuori il maggior numero possibile.
Esempio
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Prova tu stesso " Divisione per 0 (zero) genera anche Infinity:
Esempio
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
Prova tu stesso " Infinity è un numero: typeOf Infinity restituisce il numero.
NaN - Not a Number
NaN è una parola riservata JavaScript che indica che un valore non è un numero.
Cercando di fare aritmetica con una stringa non numerico si tradurrà in NaN (Not a Number):
Tuttavia, se la stringa contiene un valore numerico, il risultato sarà un numero:
È possibile utilizzare la funzione globale JavaScript isNaN() per scoprire se un valore è un numero.
Attenzione per NaN. Se si utilizza NaN in un'operazione matematica, il risultato sarà anche NaN:
O il risultato potrebbe essere una concatenazione:
NaN è un numero, e typeof NaN restituisce il numero:
I numeri possono essere oggetti
Normalmente i numeri JavaScript sono valori primitivi creati da letterali: var x = 123
Ma i numeri possono anche essere definiti come oggetti con la parola nuova: var y = new Number(123)
Esempio
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Prova tu stesso " Non creare oggetti Number. Rallenta la velocità di esecuzione.
La new parola chiave complica il codice. Questo può produrre alcuni risultati imprevisti:
Quando si utilizza il == operatore di uguaglianza, un numero uguale sembra uguale:
Esempio
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Prova tu stesso " Quando si utilizza l'operatore di uguaglianza ===, numeri uguali non sono uguali, perché l'operatore === aspetta uguaglianza sia nel tipo e valore.
Esempio
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Prova tu stesso " O peggio. Gli oggetti non possono essere confrontati:
Esempio
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Prova tu stesso " oggetti JavaScript non possono essere confrontati.
Mettiti alla prova con esercizi!
Esercizio 1 » Esercizio 2» Esercizio 3 » Esercizio 4»