Comprensione dei tipi di dati in JavaScript

Introduzione

I tipi di dati sono utilizzati per classificare un particolare tipo di dati nei linguaggi di programmazione. Ad esempio, un numero e una stringa di caratteri sono tipi di dati diversi che verranno trattati in modo diverso da JavaScript.

Questo è importante perché il tipo di dati specifico che si utilizza determinerà quali valori è possibile assegnargli e cosa è possibile fare con esso. Questo significa che, per poter eseguire operazioni con le variabili in JavaScript, è importante comprendere il tipo di dati di una variabile qualsiasi.

In questo tutorial, esamineremo come funzionano i tipi di dati in JavaScript e i tipi di dati importanti nativi del linguaggio. Questa non è un’indagine esaustiva sui tipi di dati, ma ti aiuterà a familiarizzare con le opzioni disponibili in JavaScript.

Tipizzazione dinamica

JavaScript ha tipi di dati dinamici, il che significa che il controllo del tipo viene eseguito durante l’esecuzione piuttosto che durante la compilazione. Anche i tipi di dati di Python sono dinamicamente tipizzati.

Con i linguaggi a tipizzazione dinamica, una variabile dello stesso nome può essere utilizzata per contenere diversi tipi di dati.

Ad esempio, la variabile t, definita come variabile dalla parola chiave let (nota che let mantiene una data variabile limitata in ambito), può essere assegnata per contenere diversi tipi di dati, o può essere inizializzata ma lasciata non definita:

let t = 16;			// t è un numero
let t = "Teresa";	// t è una stringa
let t = true;		// t è un booleano
let t;				// t è non definito

Ciascuna delle variabili t sopra può essere impostata su qualsiasi tipo di dati disponibile in JavaScript; non è necessario dichiararle esplicitamente con un tipo di dati prima di utilizzarle.

Numero

JavaScript ha solo un tipo di numero, non c’è una designazione separata per interi e numeri in virgola mobile. A causa di questo, i numeri possono essere scritti in JavaScript con o senza decimali:

let num1 = 93;
let num2 = 93.00;

In entrambi i casi sopra, il tipo di dati è un numero e è lo stesso indipendentemente dal fatto che il numero abbia o meno dei punti decimali.

La notazione esponenziale scientifica può essere utilizzata in JavaScript per abbreviare numeri molto grandi o piccoli, come nei seguenti esempi:

let num3 = 987e8;		// 98700000000
let num4 = 987e-8;		// 0.00000987

I numeri in JavaScript sono considerati accurati fino a 15 cifre. Ciò significa che i numeri verranno arrotondati dopo aver raggiunto la 16a cifra:

let num5 = 999999999999999;		// rimane come 999999999999999
let num6 = 9999999999999999;	// arrotondato a 10000000000000000

Oltre a rappresentare numeri, il tipo di dato numero di JavaScript ha anche tre valori simbolici disponibili:

  • Infinity — un valore numerico che rappresenta un numero positivo che si avvicina all’infinito
  • -Infinity — un valore numerico che rappresenta un numero negativo che si avvicina all’infinito
  • NaN — un valore numerico che rappresenta un non numero, che sta per non è un numero

Infinity o -Infinity verranno restituiti se si calcola un numero al di fuori del più grande numero possibile disponibile in JavaScript. Questi si verificheranno anche per valori non definiti, come quando si divide per zero:

let num7 = 5 / 0;	// restituirà Infinity
let num8 = -5 / 0;	// restituirà -Infinity

In termini tecnici, Infinity verrà visualizzato quando un numero supera il numero 1.797693134862315E+308, che rappresenta il limite superiore in JavaScript.

Allo stesso modo, -Infinity verrà visualizzato quando un numero supera il limite inferiore di -1.797693134862316E+308.

Il numero Infinity può anche essere utilizzato in cicli:

while (num9 != Infinity) { 
	// Il codice qui verrà eseguito fino a num9 = Infinity
}

Per i numeri che non sono numeri legali, verrà visualizzato NaN. Se si tenta di eseguire un’operazione matematica su un numero e un valore non numerico, verrà restituito NaN. Questo è il caso del seguente esempio:

let x = 20 / "Shark";	// x sarà NaN

Dal momento che il numero 20 non può essere diviso dalla stringa "Shark" perché non può essere valutato come numero, il valore restituito per la variabile x è NaN.

Tuttavia, se una stringa può essere valutata come un valore numerico, l’espressione matematica può essere eseguita in JavaScript:

let y = 20 / "5";	// y sarà 4

Nell’esempio sopra, dal momento che la stringa "5" può essere valutata come un valore numerico in JavaScript, viene trattata come tale e funzionerà con l’operatore matematico per la divisione, /.

Quando si assegna il valore NaN a una variabile utilizzata in un’operazione, il risultato sarà il valore di NaN, anche quando l’altro operando è un numero legale:

let a = NaN;
let b = 37;
let c = a + b; 	// c sarà NaN

C’è solo un tipo di dato numerico in JavaScript. Quando si lavora con i numeri, qualsiasi numero inserito verrà interpretato come il tipo di dato per i numeri; non è necessario dichiarare quale tipo di dato si sta inserendo perché JavaScript è tipizzato dinamicamente.

Stringhe

A string is a sequence of one or more characters (letters, numbers, symbols). Strings are useful in that they represent textual data.

In JavaScript, le stringhe esistono all’interno di singoli apici ' o doppi apici ", quindi per creare una stringa, racchiudi una sequenza di caratteri tra virgolette:

let singleQuotes = 'This is a string in single quotes.';
let doubleQuotes = "This is a string in double quotes.";

Puoi scegliere di utilizzare singoli apici o doppi apici, ma qualunque cosa decidi dovresti rimanere coerente all’interno di un programma.

Il programma “Ciao, Mondo!” dimostra come una stringa può essere utilizzata nella programmazione informatica, poiché i caratteri che compongono la frase Ciao, Mondo! nell’alert() di seguito sono una stringa.

hello.html
<!DOCTYPE HTML>
<html>
<head>
<script>
function helloFunction() {
    alert("Hello, World!");
}
</script>
</head>
<body>
<p><button onclick="helloFunction()">Click me</button></p>
</body>
</html>

Quando eseguiamo il codice e clicchiamo sul pulsante Cliccami, riceveremo un popup con l’output seguente:

Output
Hello, World!

Come con altri tipi di dati, possiamo memorizzare stringhe in variabili:

let hw = "Hello, World!";

E visualizzare la stringa nell’alert() chiamando la variabile:

hello.html
...
<script>
let hw = "Hello, World!";
function helloFunction() {
    alert(hw);
}
</script>
...
Output
Hello, World!

Ci sono molte operazioni che possiamo eseguire sulle stringhe all’interno dei nostri programmi per manipolarle per ottenere i risultati desiderati. Le stringhe sono importanti per comunicare informazioni all’utente e per consentire all’utente di comunicare informazioni al programma.

Booleani

Il tipo di dati Booleano può essere uno dei due valori, o true o false. I booleani sono utilizzati per rappresentare i valori di verità associati al ramo logico della matematica, che informa gli algoritmi nella scienza informatica.

Molte operazioni in matematica ci restituiscono risposte che si valutano come vero o falso:

  • maggiore di
    • 500 > 100 true
    • 1 > 5 false
  • minore di
    • 200 < 400 true
    • 4 < 2 false
  • uguale a
    • 5 = 5 true
    • 500 = 400 false

Come con gli altri tipi di dati, possiamo memorizzare un valore booleano in una variabile:

let myBool = 5 > 8;	// falso

Dato che 5 non è maggiore di 8, la variabile myBool ha il valore di false.

Scrivendo più programmi in JavaScript, diventerai più familiare con il funzionamento dei booleani e con come diverse funzioni e operazioni che si valutano come vero o falso possono cambiare il corso del programma.

Matrici

Una matrice può contenere più valori all’interno di una singola variabile. Ciò significa che è possibile contenere un elenco di valori all’interno di una matrice e iterare attraverso di essi.

Ogni elemento o valore che è all’interno di una matrice è chiamato un elemento. È possibile fare riferimento agli elementi di una matrice utilizzando un numero di indice.

Come le stringhe sono definite come caratteri tra virgolette, le matrici sono definite avendo valori tra parentesi quadre [ ].

Una matrice di stringhe, ad esempio, appare così:

let fish = ["shark", "cuttlefish", "clownfish", "eel"];

Se chiamiamo la variabile fish, otterremo l’output seguente:

["shark", "cuttlefish", "clownfish", "eel"]

Le matrici sono un tipo di dati molto flessibile perché sono mutevoli nel senso che è possibile aggiungere, rimuovere e modificare i valori degli elementi.

Oggetti

Il tipo di dati oggetto di JavaScript può contenere molti valori come coppie nome:valore. Queste coppie forniscono un modo utile per memorizzare e accedere ai dati. La sintassi letterale dell’oggetto è composta da coppie nome:valore separate da due punti con parentesi graffe su entrambi i lati { }.

Tipicamente utilizzato per contenere dati correlati, come le informazioni contenute in un ID, una sintassi letterale di un oggetto JavaScript appare così, con spazi bianchi tra le proprietà:

let sammy = {firstName:"Sammy", lastName:"Shark", color:"blue", location:"ocean"};

Alternativamente, e specialmente per letterali di oggetti con un alto numero di coppie nome-valore, possiamo scrivere questo tipo di dati su più righe, con uno spazio vuoto dopo ogni due punti:

let sammy = {
    firstName: "Sammy",
    lastName: "Shark",
    color: "blue",
    location: "Ocean"
};

La variabile oggetto sammy in ciascuno degli esempi sopra ha 4 proprietà: firstName, lastName, color, e location. Queste sono passate come valori separati da due punti.

Lavorare con Diversi Tipi di Dati

Pur contenendo ciascun programma che crei diversi tipi di dati, è importante tenere presente che generalmente eseguirai operazioni all’interno dello stesso tipo di dati. Ciò significa che effettuerai operazioni matematiche su numeri o taglierai stringhe.

Quando utilizzi un operatore che funziona su diversi tipi di dati, come l’operatore + che può aggiungere numeri o concatenare stringhe, potresti ottenere risultati inaspettati.

Per esempio, quando si utilizza l’operatore + con numeri e stringhe insieme, i numeri saranno trattati come una stringa (quindi verranno concatenati), ma l’ordine dei tipi di dati influenzerà la concatenazione.

Quindi, se crei una variabile che esegue la seguente concatenazione, JavaScript interpreterà ciascun elemento sottostante come una stringa:

let o = "Ocean" + 5 + 3;

Se chiami la variabile o, otterrai il seguente valore restituito:

Output
Ocean53

Tuttavia, se inizi con dei numeri, i due numeri verranno sommati prima di essere interpretati come una stringa quando il programma raggiunge "Ocean", quindi il valore restituito sarà la somma dei due numeri concatenati alla stringa:

let p = 5 + 3 + "Ocean";
Output
8Ocean

A causa di questi risultati inaspettati, probabilmente eseguirai operazioni e metodi all’interno di un singolo tipo di dati piuttosto che tra di essi. JavaScript, tuttavia, non restituisce errori quando si mescolano tipi di dati, come fanno alcuni altri linguaggi di programmazione.

Conclusione

A questo punto, dovresti avere una migliore comprensione di alcuni dei principali tipi di dati disponibili per l’uso in JavaScript.

Ognuno di questi tipi di dati diventerà importante mentre sviluppi progetti di programmazione nel linguaggio JavaScript.

Source:
https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript