Tipi di dati in JavaScript
Questo articolo spiega i tipi di dati in JavaScript.
YouTube Video
Tipi di dati in JavaScript
JavaScript dispone di tipi di dati per classificare i valori, che possono essere suddivisi in tipi primitivi e tipi oggetto. I tipi di dati determinano quale tipo di dato è memorizzato in una variabile e influenzano il modo in cui può essere manipolato.
Tipi primitivi
I tipi primitivi sono tipi di dati semplici che rappresentano un singolo valore. JavaScript dispone dei seguenti 7 tipi primitivi.
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
number
è un tipo utilizzato per gestire valori numerici, inclusi interi e numeri a virgola mobile (decimali). La gestione di valori che superano determinati limiti restituisceInfinity
oNaN
(Not-a-Number).
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
- In JavaScript, i numeri sono rappresentati come numeri in virgola mobile. Di conseguenza, alcuni decimali (soprattutto quelli che non possono essere rappresentati con precisione in binario) potrebbero non essere espressi accuratamente.
- Quando sono necessari calcoli precisi, ad esempio per i valori monetari, è necessario evitare tali errori di arrotondamento. Ad esempio, è possibile utilizzare
BigInt
o regolare il numero di decimali contoFixed()
.
string
1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);
string
è un tipo di dato utilizzato per gestire il testo, rappresentando una sequenza di caratteri. È rappresentato racchiudendo il testo tra apici singoli ('
) o doppi apici ("). Da ES6 in poi, i template literals consentono di incorporare facilmente variabili utilizzando i backtick (
). Per incorporare una variabile, usa la sintassi${}
.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
boolean
rappresenta un valore logico e può avere solo due valori:true
ofalse
. Viene utilizzato come risultato di espressioni condizionali o come flag.
null
1let result = null;
2
3console.log("Value of result:", result);
null
è un tipo di dato che indica esplicitamente 'assenza di valore'.null
è impostato dagli sviluppatori per indicare un'assenza intenzionale.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);
undefined
è un tipo di dato che significa 'non definito'.undefined
è assegnato automaticamente quando una variabile viene dichiarata ma non ha un valore.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
bigint
è un tipo di dato per gestire numeri interi di grandi dimensioni.bigint
consente una rappresentazione accurata di numeri interi di grandi dimensioni che non possono essere rappresentati dal tiponumber
. I letteralibigint
sono rappresentati aggiungendon
alla fine di un numero.bigint
è un tipo per la gestione di numeri interi di dimensioni arbitrarie, senza limitazioni di intervallo. Tuttavia,bigint
enumber
non possono essere manipolati direttamente insieme, quindi è necessaria cautela.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbol
è un tipo di dato utilizzato per creare identificatori unici. Viene creato utilizzandoSymbol()
e può essere usato come proprietà di un oggetto. A differenza di altri tipi primitivi,Symbol
ha valori unici, quindi anche con lo stesso contenuto viene trattato come unSymbol
diverso.
Tipi di Oggetti
I tipi di oggetti sono strutture di dati che possono memorizzare più valori. Un oggetto è una raccolta di coppie chiave-valore e può avere proprietà e metodi.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Object
è una raccolta di proprietà (coppie chiave-valore) che può memorizzare vari tipi di dati. Gli oggetti sono rappresentati da parentesi graffe{}
, e ogni proprietà è collegata tramite:
tra chiave e valore.
Array
1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
Array
è una lista che contiene più valori in modo ordinato. Gli array sono rappresentati da parentesi quadre[]
, e i valori sono separati da virgole,
. Ogni elemento viene accesso tramite un indice che parte da 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Le Funzioni sono un tipo di oggetto e blocchi di codice riutilizzabili. Le funzioni possono essere definite usando la parola chiave
function
.
Altri Tipi di Oggetti
- JavaScript include anche tipi di oggetti predefiniti come
Date
,RegExp
,Map
eSet
. Questi gestiscono i dati in base a casi d'uso specifici.
Conversione di Tipo
Le conversioni di tipo implicite e esplicite sono frequentemente utilizzate in JavaScript.
Conversione di Tipo Implicita
- JavaScript potrebbe convertire automaticamente i tipi durante l'esecuzione di operazioni tra tipi diversi.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- In questo esempio, il numero
5
viene implicitamente convertito in una stringa, generando la stringa"55"
.
Conversione di Tipo Esplicita
- Gli sviluppatori possono anche eseguire esplicitamente le conversioni di tipo.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- In questo esempio, la funzione
Number()
viene utilizzata per convertire esplicitamente la stringa"123"
nel numero123
.
Verifica del Tipo
In JavaScript, è possibile utilizzare l'operatore typeof
per verificare il tipo di dato di una variabile.
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});
Conclusione
- I tipi primitivi includono
number
,string
,boolean
,null
,undefined
esymbol
. - I tipi di oggetti includono
Object
,Array
,Function
, e altri. - Poiché avvengono sia conversioni di tipo automatiche che esplicite, è importante comprendere il corretto utilizzo dei tipi di dati.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.