Tipi di dati in JavaScript

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 restituisce Infinity o NaN (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 con toFixed().

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 o false. 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 tipo number. I letterali bigint sono rappresentati aggiungendo n alla fine di un numero.
  • bigint è un tipo per la gestione di numeri interi di dimensioni arbitrarie, senza limitazioni di intervallo. Tuttavia, bigint e number 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 utilizzando Symbol() 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 un Symbol 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 e Set. 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 numero 123.

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 e symbol.
  • 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.

YouTube Video