Esercitazione JS

JS CASA JS Introduzione JS Dove si va Uscita JS Dichiarazioni JS Sintassi JS Commenti JS Variabili JS JS Let JS Cost Operatori JS JS aritmetica Assegnazione JS Tipi di dati JS Funzioni JS Oggetti JS Eventi JS Corde JS Metodi di stringa JS Ricerca di stringhe JS Modelli di stringhe JS Numeri JS Metodi numerici JS Matrici JS Metodi array JS Ordinamento matrice JS Iterazione dell'array JS Cost. array JS Date JS Formati data JS Metodi di acquisizione della data JS Metodi di impostazione della data JS JS matematica JS Casuale JS booleani Confronti JS Condizioni JS JS Switch Ciclo JS per JS Loop per In Ciclo JS per di JS Loop mentre JS Break Iterabili JS Insiemi JS Mappe JS Tipo JS Conversione del tipo JS JS bit a bit JS RegExp Errori JS Ambito JS JS sollevamento Modalità rigorosa JS JS questa parola chiave Funzione freccia JS Classi JS JS JSON Debug JS Guida allo stile JS Migliori Pratiche JS Errori di JS Prestazioni JS Parole riservate JS

Versioni JS

Versioni JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Storia di JS

Oggetti JS

Definizioni di oggetti Proprietà dell'oggetto Metodi dell'oggetto Visualizzazione di oggetti Accessori per oggetti Costruttori di oggetti Prototipi di oggetti Iterabili di oggetti Insiemi di oggetti Mappe degli oggetti Riferimento all'oggetto

Funzioni JS

Definizioni delle funzioni Parametri di funzione Invocazione di funzione Chiamata di funzione Funzione Applica Chiusure di funzioni

Classi JS

Introduzione alla classe Eredità di classe Classe statica

JS Async

Richiamate JS JS asincrono JS Promesse JS Async/Attendere

JS HTML DOM

DOM Introduzione Metodi DOM Documento DOM Elementi DOM DOM HTML Moduli DOM DOM CSS Animazioni DOM Eventi DOM Ascoltatore di eventi DOM Navigazione DOM Nodi DOM Collezioni DOM Elenchi di nodi DOM

Distinta base del browser JS

Finestra JS Schermo JS Posizione JS Storia di JS Navigatore JS Avviso popup JS JS tempismo Biscotti JS

API Web JS

Introduzione all'API Web API dei moduli Web API Cronologia web API di archiviazione Web API Web Worker API di recupero Web API di geolocalizzazione web

JS AJAX

Introduzione all'Ajax AJAX XMLHttp Richiesta AJAX Risposta dell'AJAX File XML AJAX AJAX PHP AJAX ASP Database AJAX Applicazioni AJAX Esempi AJAX

JS JSON

Introduzione JSON Sintassi JSON JSON contro XML Tipi di dati JSON Analisi JSON JSON Stringify Oggetti JSON Matrici JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Selettori jQuery jQuery HTML jQuery CSS jQuery DOM

Grafica JS

Grafica JS Tela JS JS Plotly JS Chart.js Grafico di Google JS JS D3.js

Esempi JS

Esempi JS JS HTML DOM Input HTML JS Oggetti HTML JS Eventi HTML JS Browser JS Editore JS Esercizi JS Quiz J.S Certificato JS

Riferimenti JS

Oggetti JavaScript Oggetti HTML DOM


Numeri JavaScript


JavaScript ha un solo tipo di numero. I numeri possono essere scritti con o senza decimali.


Esempio

let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

Numeri extra grandi o extra piccoli possono essere scritti con notazione scientifica (esponente):

Esempio

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123


I numeri JavaScript sono sempre in virgola mobile a 64 bit

A differenza di molti altri linguaggi di programmazione, JavaScript non definisce diversi tipi di numeri, come interi, short, long, virgola mobile ecc.

I numeri JavaScript vengono sempre archiviati come numeri in virgola mobile a doppia precisione, secondo lo standard internazionale IEEE 754.

Questo formato memorizza i numeri in 64 bit, dove il numero (la frazione) è memorizzato nei bit da 0 a 51, l'esponente nei bit da 52 a 62 e il segno nel bit 63:

Valore (aka Frazione/Mantissa) Esponente Cartello
52 bit (0 - 51)  11 bit (52 - 62) 1 bit (63)

Precisione intera

I numeri interi (numeri senza punto o notazione esponente) sono accurati fino a 15 cifre.

Esempio

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

Il numero massimo di decimali è 17.

Precisione fluttuante

L'aritmetica in virgola mobile non è sempre accurata al 100%:

let x = 0.2 + 0.1;

Per risolvere il problema di cui sopra, è utile moltiplicare e dividere:

let x = (0.2 * 10 + 0.1 * 10) / 10;


Aggiunta di numeri e stringhe

AVVERTIMENTO !!

JavaScript utilizza l'operatore + sia per l'aggiunta che per la concatenazione.

I numeri vengono aggiunti. Le stringhe sono concatenate.

Se aggiungi due numeri, il risultato sarà un numero:

Esempio

let x = 10;
let y = 20;
let z = x + y;

Se aggiungi due stringhe, il risultato sarà una concatenazione di stringhe:

Esempio

let x = "10";
let y = "20";
let z = x + y;

Se aggiungi un numero e una stringa, il risultato sarà una concatenazione di stringhe:

Esempio

let x = 10;
let y = "20";
let z = x + y;

Se aggiungi una stringa e un numero, il risultato sarà una concatenazione di stringhe:

Esempio

let x = "10";
let y = 20;
let z = x + y;

Un errore comune è aspettarsi che questo risultato sia 30:

Esempio

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

Un errore comune è aspettarsi che questo risultato sia 102030:

Esempio

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

L'interprete JavaScript funziona da sinistra a destra.

Il primo 10 + 20 viene aggiunto perché xey sono entrambi numeri.

Quindi 30 + "30" viene concatenato perché z è una stringa.


Stringhe numeriche

Le stringhe JavaScript possono avere contenuto numerico:

let x = 100;         // x is a number

let y = "100";       // y is a string

JavaScript proverà a convertire le stringhe in numeri in tutte le operazioni numeriche:

Questo funzionerà:

let x = "100";
let y = "10";
let z = x / y;

Questo funzionerà anche:

let x = "100";
let y = "10";
let z = x * y;

E questo funzionerà:

let x = "100";
let y = "10";
let z = x - y;

Ma questo non funzionerà:

let x = "100";
let y = "10";
let z = x + y;

Nell'ultimo esempio JavaScript usa l'operatore + per concatenare le stringhe.


NaN - Non un numero

NaN è una parola riservata JavaScript che indica che un numero non è un numero legale.

Il tentativo di eseguire aritmetica con una stringa non numerica risulterà in NaN(non un numero):

Esempio

let x = 100 / "Apple";

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

Esempio

let x = 100 / "10";

Puoi utilizzare la funzione JavaScript globale isNaN() per scoprire se un valore non è un numero:

Esempio

let x = 100 / "Apple";
isNaN(x);

Fai attenzione NaN. Se usi NaNin un'operazione matematica, il risultato sarà anche NaN:

Esempio

let x = NaN;
let y = 5;
let z = x + y;

Oppure il risultato potrebbe essere una concatenazione come NaN5:

Esempio

let x = NaN;
let y = "5";
let z = x + y;

NaNè un numero: typeof NaNrestituisce number:

Esempio

typeof NaN;

Infinito

Infinity(o -Infinity) è il valore che JavaScript restituirà se calcoli un numero al di fuori del numero più grande possibile.

Esempio

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

La divisione per 0 (zero) genera anche Infinity:

Esempio

let x =  2 / 0;
let y = -2 / 0;

Infinityè un numero: typeof Infinityrestituisce number.

Esempio

typeof Infinity;

Esadecimale

JavaScript interpreta le costanti numeriche come esadecimali se sono precedute da 0x.

Esempio

let x = 0xFF;

Non scrivere mai un numero con uno zero iniziale (come 07).
Alcune versioni di JavaScript interpretano i numeri come ottali se sono scritti con uno zero iniziale.

Per impostazione predefinita, JavaScript visualizza i numeri come base 10 decimali.

Ma puoi usare il toString()metodo per produrre numeri da base 2 a base 36 .

L'esadecimale è in base 16 . Il decimale è in base 10 . Ottale è in base 8 . Il binario è base 2 .

Esempio

let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);

Numeri JavaScript come oggetti

Normalmente i numeri JavaScript sono valori primitivi creati da letterali:

let x = 123;

Ma i numeri possono anche essere definiti come oggetti con la parola chiave new:

let y = new Number(123);

Esempio

let x = 123;
let y = new Number(123);

Non creare oggetti Numero.

La newparola chiave complica il codice e rallenta la velocità di esecuzione.

Gli oggetti numerici possono produrre risultati imprevisti:

Quando si utilizza l' ==operatore, x e y sono uguali :

let x = 500;
let y = new Number(500);

Quando si utilizza l' ===operatore, xey non sono uguali .

let x = 500;
let y = new Number(500);

Nota la differenza tra (x==y)e (x===y).

(x == y) vero o falso?

let x = new Number(500);
let y = new Number(500);

(x === y) vero o falso?

let x = new Number(500);
let y = new Number(500);

Comparing two JavaScript objects always returns false.

Complete JavaScript Number Reference

For a complete Number reference, visit our:

Complete JavaScript Number Reference.

The reference contains descriptions and examples of all Number properties and methods.