Gli ultimi tutorial di sviluppo web
 

JavaScript Numeri


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

Esempio

var x = 0.2 + 0.1;         // x will be 0.30000000000000004
Prova tu stesso "

Per risolvere il problema di cui sopra, aiuta a moltiplicare e dividere:

Esempio

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
Prova tu stesso "

esadecimale

JavaScript interpreta costanti numeriche come esadecimale se sono preceduti da 0x.

Esempio

var x = 0xFF;             // x will be 255
Prova tu stesso "

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.

Esempio

typeof Infinity;        // returns "number"
Prova tu stesso "

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

Esempio

var x = 100 / "Apple";  // x will be NaN (Not a Number)
Prova tu stesso "

Tuttavia, se la stringa contiene un valore numerico, il risultato sarà un numero:

Esempio

var x = 100 / "10";     // x will be 10
Prova tu stesso "

È possibile utilizzare la funzione globale JavaScript isNaN() per scoprire se un valore è un numero.

Esempio

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number
Prova tu stesso "

Attenzione per NaN. Se si utilizza NaN in un'operazione matematica, il risultato sarà anche NaN:

Esempio

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN
Prova tu stesso "

O il risultato potrebbe essere una concatenazione:

Esempio

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5
Prova tu stesso "

NaN è un numero, e typeof NaN restituisce il numero:

Esempio

typeof NaN;             // returns "number"
Prova tu stesso "

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»