I tipi di dati in Javascript
Come qualsiasi altro linguaggio, anche javascript prevede i tipi di dato: ovvero quell’informazione che ci dice che cos’è quel dato.
Vanilla Javascript, ovvero javascript è anzitutto un linguaggio a tipizzazione debole o tipizzazione dinamica, questo vuo dire che quando si assegna una variabile non è vincolante conoscerne il tipo, e può anche essere riassegnata cambiandone il tipo, senza creare problemi in fase di interpretazione. Sembrerebbe una comodità, ma può rivelarsi un’arma a doppio taglio per lo sviluppatore, infatti le best practice ci indicano che è sempre meglio conoscere che tipo di dato ci dobbiamo aspettiamo. Negli ultimi anni è nato Typescript, un super set di javascript che oltre a rendere disponibili nuove funzionalità, risolve anche questo problema introducendo la tipizzazione.
Javascript ha cinque tipi primitivi, ed uno complesso. Vediamo quindi quali sono e come si caraterizzano.
I tipi primtivi
type | descrizione |
---|---|
string | una sequenza di caratteri alfanumerici, quindi può contenere sia lettere che numeri; può contenere caratteri speciali, caratteri unicode, ed è delimitata da doppi o singoli apici. |
// Esempio di string
var name = "Angelo"; // solo lettere
var username = "Angelo86" // lettere e numeri
var message = 'L\'apostrofo'; // se usiamo i singoli apici, ed abbiamo un'apostrofo, usare backslash + apostrofo
type | descrizione |
---|---|
number | al contrario di altri linguaggi, tipo C# che ha diversi tipi per il formato numero, in javascript l’unico messo a disposizione è number. Può contenere numeri positivi, negativi, 0, interi e decimali. |
// Esempio di number
var year = 1986
var dec = 2.5
var negative = -7
type | descrizione |
---|---|
booleano | come negli altri linguaggi, un valore booleano può essere true e false . E’ quindi un’entità logica per confermare o negare. |
// Esempio di booleano
var hasUser = true
var hasLogged = false
type | descrizione |
---|---|
undefined | è quel tipo per cui una variabile anche se è stata inizializzata, non ha nessun valore |
// Esempio di undefined
var lastname; // undefined
type | descrizione |
---|---|
null | quando decidiamo che una variabile non ha ancora un valore possibile |
// Esempio di null
var activated = null;
L’oggetto
type | descrizione |
---|---|
object | è un tipo che possiamo definire complesso; è sostanzialmente un container di più dati su base chiave valore. Può contenere quindi diversi tipi di dati, assegnati grazie ad una chiave, divisi per virgola. |
var Person = {
name : "Angelo",
year : 1986,
hasLogged : false,
activated : null,
getAge : () => age,
cities : ['Milan','Rome','London']
}
In javascript vengono definiti object anche le function
e gli array
Come verificare il tipo con Typeof
Per capire con che tipo di dato abbiamo a che fare, possiamo utilizzare l’operatore typeof, in if statement
o semplicemente stampandolo su un console.log.
typeof name // string
typeof year // number
typeof lastname // "undefined"
typeof activated // null
typeof Person // object
typeof function(){} // function
typeof ['a','b','c'] // object
Come accennato sopra, le funzioni sono degli oggetti, anche se facendo un typeof viene restituito function
: qui una spiegazione sulla doc ufficiale di ECMAScript
Nullish
Possiamo definie nullish tutti quei tipi e valori che portano a qualcosa di nullo o vuoto. Quindi possiamo raccogliere in questo gruppo: null
, undefined
, 0
, []
, ""
, false
.
Cambiare il tipo
Stringa > Numero
num = +num;
typeof num // "number"
Numero > Booleano
let checked = !0; // true
typeof checked // boolean
// O
let checked = !1 // false
typeof checked // boolean
Numero > Stringa
let eta = 18 //
typeof eta // number
eta += ""; // "18"
typeof eta // "string"
Booleano > Numero
console.log(+true) // 1
typeof +true // boolean