1.1 Conversione esplicita dei tipi
La conversione di tipi in JavaScript è il processo di trasformazione di un valore da un tipo di dati all'altro. Esistono due tipi di conversione: esplicita (manuale) e implicita (automatica). Capire questi processi è importante per prevenire errori e creare codice prevedibile.
La conversione esplicita, anche conosciuta come conversione manuale, viene eseguita utilizzando funzioni e metodi integrati di JavaScript. È una conversione in cui il programmatore specifica chiaramente quale tipo di dati deve essere convertito in un altro tipo.
Principali metodi di conversione esplicita:
1. Conversione a stringa
- Metodo
String(value)
: converte il valore in una stringa
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString()
: metodo dell'oggetto che converte il valore in una stringa
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. Conversione a numero
Number(value)
: converte il valore in un numero
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base)
: converte una stringa in un intero. Il parametrobase
indica la base del sistema numerico
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value)
: converte una stringa in un numero con virgola mobile
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. Conversione a valore booleano
Boolean(value)
: converte il valore in un booleano
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 Conversione implicita dei tipi
La conversione implicita, anche nota come automatica o nascosta, viene eseguita automaticamente da JavaScript durante l'esecuzione di operazioni con diversi tipi di dati. La conversione implicita può portare a risultati inattesi, quindi è necessario capirla e utilizzarla con cautela.
1. Conversione a stringa
Quando si somma qualsiasi oggetto con una stringa, JavaScript cercherà di convertirlo in una stringa.
Esempio:
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. Conversione a numero
Quando si utilizzano operatori aritmetici (ad eccezione di +) con stringhe che contengono numeri.
let result = "123" - 0;
console.log(result); // 123 (numero)
Come funziona nella pratica:
let result = "123" - 10;
console.log(result); // 113 (numero)
let result2 = "123" + 10;
console.log(result2); // 12310 (stringa)
3. Conversione a valore booleano
Nell'utilizzo di valori in contesti logici (operatori condizionali, cicli, ecc.).
let value = "hello";
if (value) {
console.log("Value is truthy"); // Output: "Value is truthy"
}
Esempi di conversioni in contesto logico:
false
,0
,""
(stringa vuota),null
,undefined
, eNaN
sono considerati valori falsi (false
)- Tutti gli altri valori sono considerati veri (
true
)
if ("") {
console.log("Questo non verrà stampato.");
} else {
console.log('"" è considerato falso in un contesto booleano.');
}
// '"" è considerato falso in un contesto booleano.'
1.3 Esempi di conversione implicita
Esempio con operazioni aritmetiche:
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // Conversione esplicita
console.log(area); // 20000
let perimeter = (+width) + (+height); // Utilizzo del più unario per conversione esplicita
console.log(perimeter); // 300
Esempio con contesto logico:
let userInput = ""; // Stringa vuota
if (!userInput) {
console.log("L'utente non ha inserito dati."); // Conversione implicita della stringa in valore booleano
}
Esempio con tipi combinati:
let value = "10";
let increment = 5;
let result = value + increment; // Conversione implicita di un numero in stringa
console.log(result); // "105"
result = Number(value) + increment; // Conversione esplicita della stringa in numero
console.log(result); // 15
GO TO FULL VERSION