I numeri in Javascript

In questo video parleremo dei numeri in JavaScript.
I numeri sono uno dei valori primitivi di JavaScript e, a differenza di altri linguaggi di programmazione, JavaScript li tratta tutti come se avessero la virgola, quindi non serve fare distinzione tra "integer" e "float".
Vedremo diverse maniere per convertire stringhe numeriche in veri numeri e viceversa, e cosa succede quando proviamo a concatenare dei numeri con delle stringhe. Poi parleremo anche di NaN (Not a Number), di Infinity e di numeri binari, ottali ed esadecimali.
Infine, vedremo alcune interessanti proprietà dell'oggetto built-in Number (come MIN_VALUE, MAX_VALUE, EPSILON) e un paio di maniere per risolvere un "bug" di JavaScript coi numeri con la virgola.

Trascrizione: (click per espandere)
salve a tutti oggi parleremo dei numeri
di javascript
i numeri sono un valore primitivo come
ho già detto e a differenza di molti
altri linguaggi di programmazione dove
bisogna specificare se si sta lavorando
con numeri interi o con la virgola che
si dice integer o float javascript e
tratta tutti i numeri come se fossero
con la virgola quindi float anche se la
virgola non è specificata
andiamo a vedere qualche esempio su come
convertire un numero che stringa in
numerore vero per esempio se io questo
questa variabile qui let stringa e ci
metto un 10 posso andare a convertirla
in questa maniera
console log così facciamo anche vedere con
sul log parse int string e ce l'ho
qui 10 se adesso voglio vedere il tipo
uso l'operatore typeof e come vedete a
un numero da stringa un numero se io
metto 10,5 la funzione parse int mi
ritorna sempre la parte intera se voglio
che mi venga ritornata la parte tutto il
numero con la virgola deve usare parse
float parse float eccolo qui c'è tutto
il numero con la virgola e anche in
questo caso è un numero e non è più una
stringa altra maniera per convertire una
stringa in un numero si può usare
l'oggetto number come esiste l'oggetto
string per le stringhe che esiste
alloggiato number per i numeri e come ho
detto per l'oggeto stringa non usate
questo oggetto con la keyword new ma lo
usato così com'è quindi andiamo a
vedere
usando l'oggetto number e passandoci
dentro la stringa e io ho il numero e se
vediamo il type of a un numero altra
maniera per convertire una stringa in un
numero e usando l'operatore di addizione
facciamo sempre typeof sono sbagliato
ecco qui ho convertito la stringa in un
numero mettendo all'operatore di
addizione davanti
cos'altro dire se
io ho una variabile come questa
la chiamiamo mista e ci metto un numero
sommato un altro numero sommato a una
stringa e poi vado a vedere su output
mista io mi troverò sai stringa eccolo
qui perché perché javascript comincia a
leggere dalla sinistra e il trovo numero
poi trova un altro numero quindi li
aggiunge poi trova una stringa e allora
converte in numero in stringa e la
concatena a rimane la rimanenza della
stringa se io avessi l'incontrario
vediamo subito se io avessi i numeri
dopo la stringa cosa mi troverò mi
troverò stringa 33 ecco stringa tra tre
perché javascript comincia a leggere
sempre dalla sinistra trova una stringa
quindi tutto quello che trova dopo lo
converting stringa andiamo a vedere un
altro operatore che non vi ho detto nel
video presidente sulle stringhe per
convertire un numero in stringa è
l'operatore
to string dobbiamo vedere un esempio
numero e ci metto un 6 se adesso io vado
a fare il logging e mettono member to
string ecco io converto un numero in
stinga questo è un altra maniera per
convertire un numero e stringa che si
può aggiungere a quelle che vi ho fatto
vedere nel video precedente cioè una
feature maggiore si usando questo
operatore io posso specificare una base
tipo binario ottale esadecimale fra per
esempio si specifico in base 2 e qui vado a stampare il
suo output mi trovo il mio numero
decimale convertito in binario rivedremo
un po più avanti altre maniere per
maneggiare i numeri binarie quindi se io
posso che possono mettere come ho detto
posso mettere mettiamo un numero più
grande se qui metto totale cioè noi nota
le altrimenti ce l'ho in esegesi male
ecco quindi se nello specifico nulla mi
ritorna la stringa in decimale
altrimenti se specifico la base mi
ritorna la stringa come col numero
convertito in base alla base not a
number normalmente javascript o
meglio javascript quando sta manipolando sta
lavorando con i numeri se trova un
valore che dovrebbe essere un numero ma
non è un numero ritorno al not a number
eccolo qui nota number ed andiamo a
stamparlo ecco qua not a number quindi
se io adesso provo
questa variabile mista che è una
stringa provo a metterla qui e uso
l'operatore not a number per vedere se è
un numero oppure no mi ritorno a vero
perché è mista è una stringa quindi non
è un numero e quindi è l'operatore non è
un numero mi ritorna vero se io provo a
mettere dentro questa variabile qui che
è un numero intorno a falso perché
questo è un numero infinity javascript ha
un determinato range tra di numeri tra
un massimo numero positivo che può
maneggiare fino a un minimo numero
negativo che può maneggiare oltre questi
limiti non riesce a garantire il
l esecuzione dei calcoli eccetera e
quindi ritorna infiniti per esempio se
io vado a
divisione vado a prova a calcolarne il 3
diviso 0 e poi vado a vedere il suo output
divisione mi troverò infinity perché non
riesce a maneggiare questo numero perché
troppo è fuori è fuori dal range
come vi avevo anticipato prima
javascript normalmente tratta tutti i
numeri in decimale però specificando
specificando il numero in una
determinata maniera e si può lavorare
con numeri in binario coi numeri in ottale
e coi numeri in esadecimale se io
voglio creare scrivere un numero in
binario
lo scrivo in questa maniera
scrivo 0 b e poi scrivo il numero se
voglio scriverlo in ottale scrivo zero
o e poi scrivo il numero se voglio
scriverlo in esadecimale
scrivo 0x il numero ecco qui posso posso
usare la funzione parse int per
per convertire il numero da per esempio
esadecimale a decimale andiamo a vedere
come console log parse int
io qui mi metto dentro per esempio il
mio valore esadecimale così e poi
aggiungo un argomento a questa funzione
e aggiungo la base e vado a vedere su
output e vedo il valore da esadecmale
a decimale numeri con la virgola
andiamo a vedere i numeri con la virgola
bisogna stare attenti perché javascript
e maneggia maniera particolare i numeri
con la virgola e quando li salva non è
detto che sia che li salvi nella maniera
più corretta possibile nel senso che per
esempio se io ho un io eseguo una
somma come
insomma 0,1 più 0,2
in teoria io qui dovrei avere 0.3 invece
se io vado a stampare questo
stampare questo valore
mi trovo a 0 3 0 0 0 0 è un 4 alla fine
questo è che chiamiamo tra virgolette un
bug di javascript che fa fatica a
maneggiare determinati numeri con la
virgola
quindi come si può ovviare a questo
problema andiamo a vedere come si può
fare si può fare in due maniere posso
fare
moltiplicare per 10 a ogni numero x 10 x
10 e poi dividere il tutto fratto 10 e
mi trovo 0.3 perfetto perché io
convertendo e il decimale in numero
intero riesco e javascript non ha nessun
problema a maneggiarli e quindi ho un
risultato perfetto altrimenti con l'ECMAScript 6
è stato introdotto una
proprietà dell'oggetto number che si
chiama la proprietà epsilon andiamo
stampo così la potete vedere quindi
number proprietà epsilon ecco qui come
vedete è un numero veramente piccolo
perché e alla meno 16 questo numero e
rappresenta il range per il quale
un numero con la virgola poco essere
considerato vero nel senso che se io
adesso vado lo 0.3 che risultava da
questo con tutti gli zeri e il 4 quello
tutte quella serie di zeri con 4 finale
era compreso da sarebbe compreso da
questo da questo valore qui e quindi io
potrei dire che il risultato è 0.3
andiamo a fare un esempio sono si è un
po' contorta con un'idea comunque per
esempio sia 0.1 + 0.2 meno facciamo meno
03 e quindi mi risulterebbe quello 0 0 0
0 0 con 4 alla fine minore di number epsilon
se come risultato di questa sottrazione
è minore di questo range e io posso
considerare tutta questa espressione
vera è infatti ovvero l'oggetto number ha
anche altre proprietà che possono essere
utili e andiamo a vedere alcune io per
esempio questo è il numero massimo che
oltre al cui il quale dava scritto non
riesce più a maneggiare i numeri ed
eccolo qui come vedete un numero
veramente grande perché e alla 308 come
c'è il massimo valore
abbiamo anche il minimo valore ecco qui
come vedete è molto piccolo 5 con
e alla meno 324
posso farvi vedere anche un'altra
funzione giusto per riempire un po' il
tempo per esempio questa funzione qui
potrebbe essere interessante se io ho un
numero decimale magari 1.345 6 7 8 9 e
voglio e voglio il suo output sia come
dire voglio vedere solo le prime due
cifre decimali del suo output metto
decimale poi uso la la funzione to fix e
specifico quanto in quanti numeri dopo
la virgola voglio vedere ed ecco per
esempio metto due
ed ecco qui 1 35 sono è anche stato a
cui si dice arrotondato se metto 4 avrò
quattro cifre dopo la virgola
riguardo ai numeri ho detto tutto
il problema della epsilon qui è un
problema un po' di javascript bisogna
capire come affrontare se si fanno
operazioni con i numeri decimali
vi metto un paio di linking descrizione
che riportano tutte le funzioni del dei
numeri di javascript
ci sentiamo la prossima ciao
File del video: