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 restituisceInfinityoNaN(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
BigInto 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);booleanrappresenta un valore logico e può avere solo due valori:trueofalse. 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.bigintconsente una rappresentazione accurata di numeri interi di grandi dimensioni che non possono essere rappresentati dal tiponumber. I letteralibigintsono rappresentati aggiungendonalla fine di un numero.bigintè un tipo per la gestione di numeri interi di dimensioni arbitrarie, senza limitazioni di intervallo. Tuttavia,bigintenumbernon 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,Symbolha valori unici, quindi anche con lo stesso contenuto viene trattato come unSymboldiverso.
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,MapeSet. 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
5viene 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,undefinedesymbol. - 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.