JavaScript: Numeri e Date

Scritto da ambrix on . Postato in Corsi Programmazione Nessun Commento

js logo

Lezione#06 Parliamo ancora di numeri! In questa lezione, vedremo qualche aspetto matematico, analizzando metodi e proprietà che riguardano numeri e date in JavaScript.

Avere a che fare con numeri e date in JavaScript, è molto frequente. Inoltre, come abbiamo già visto, in JavaScript non esiste un tipo di dato intero o float, così come accade in c++, ma esiste un unico tipo di dato che viene indacato come  number . Infatti se proviamo a scrivere la seguente porzione di codice:

// Esempio #01

var age = 42;
var height = 1.72;
console.log(typeof age);

number 

La console ci restituisce number come risposta. Stesso output abbiamo con typeof height.

Quando proviamo ad assegnare un valore “anomalo” ad una una variabile, JavaScript tenta di convertirlo in un tipo di dati ammissibile. Ad esempio, se consideriamo il seguente script:

// Esempio #02

var pippo = "10" + 10;
console.log(pippo);

1010 

Alla variabile pippo, viene assegnata la somma di una stringa con un numero. In tal caso, JS converte il numero in stringa e restituisce la concatenazione delle due stringhe. La console mostra il risultato della conversione automatica dei tipi di dato.

Se proviamo a dividere un numero per una stringa, la console ci restituirà  NaN , che in gergo vuole Not a Number, nel caso in cui non la stringa è  non puramente numerica.

// Esempio #03

var pippo = 20 / "Robin";
var pluto =  20 / "12";
console.log(pippo);
console.log(pluto);

NaN
1.6666666666666667 

La variabile pluto, dà in output il risultato dalla divisione tra 20 e 12, quindi in tal caso è la stringa a denominatore ad essere convertita in numero.

Possiamo trasformare stringhe numeriche in numeri usando  parseInt ()  per numeri interi o  parseFloat ()  per numeri in virgola mobile.

// Esempio #04

var x = "79.99 Euro";
var price1 = parseInt(x);
var price2 = parseFloat(x);
console.log(price1 + " ---- " + price2);

79 —- 79.99 

Il parsing è un processo di analisi e di elaborazione di una stringa. Le stringhe possono contenere caratteri non numerici purché inizino con un numero.

Possiamo utilizzare il metodo  Math.round ()  per arrotondare un numero per eccesso o per difetto, avvicinandolo al numero intero più vicino.

//Esempio #05

var pi = 3.141592653589793;
var number = Math.round(pi);
console.log("pi arrotondato vale " + number);

pi arrotondato vale 3 

Ricorda sempre che i valori inferiori a 0,5 verranno arrotondati per difetto e da 0,5 in su, verranno arrotondati per eccesso.

 Math è un oggetto che contiene diverse costanti come  Math.PI  e metodi come  Math.random ()  che possono aiutarci anche a risolvere problemi matematici.

// Esempio #06

var number = Math.PI;
var random = Math.random();
console.log(number);
console.log(random);

3.141592653589793
0.45374651692506784 

Math.PI è una costante, mentre Math.random () produce un numero casuale compreso tra 0 e 1.

Un altro oggetto,  Date , ci consente di lavorare con date e ora. La differenza tra Date e Math è che, nel primo caso bisogna usare la parola new per creare una cosiddetta istanza.

// Esempio #07

var date = new Date("1985-10-21");
document.write(date);

Mon Oct 21 1985 01:00:00 GMT+0100 (Ora standard dell’Europa centrale)  

Date, essendo un oggetto, ha un sacco di metodi che ci aiutano a sfruttarne le potenzialità.

// Esempio #08

var date = new Date("1985-10-21");
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
console.log(year + "/" + month + "/" + day);

1985/10/21 

Come si può vedere dal precedente esempio, getMonth () restituisce il mese iniziando a contare da 0, pertanto vi è la necessità di inserire +1 per avere la corrispondenza giusta. 

 

Ritorna alla precedente <– []–> Vai alla successiva

Trackback dal tuo sito.

Lascia un commento

Devi essere loggato per postare un commento.

Per Richieste, Avvisi e Lasciti Ereditari

Disclaimer

I contenuti di questo Blog (testi, immagini, foto, etc.) sono di mia creazione, tranne nei casi dove espressamente indicato.