Conversione di tipo 101: comprensione della coercizione e del casting in JavaScript
La coercizione del tipo e il casting del tipo sono concetti nella programmazione che si riferiscono al processo di conversione di un tipo di dati in un altro.
Tipo Coercizione:
La coercizione del tipo si riferisce alla conversione automatica dei tipi di dati che si verifica in JavaScript quando diversi tipi di dati vengono utilizzati insieme in un'operazione. Ad esempio, se un numero e una stringa vengono sommati insieme, JavaScript convertirà automaticamente il numero in una stringa in modo che l'operazione possa essere eseguita.
let num = 5;
let str = "3";
console.log(num + str); //output: "53"
- Utilizzo degli operatori == o != per il confronto, che eseguono la coercizione del tipo prima di eseguire un confronto
- L'utilizzo dell'operatore unario più (
+) prima di un valore eseguirà la coercizione del tipo su Number. Tuttavia, il+segno può comparire una sola volta e non deve essere seguito da spazi bianchi. Ad esempio:
let x = "5";
let y = +x;
console.log(typeof y); // output: number
D'altra parte, il casting dei tipi si riferisce alla conversione esplicita dei tipi di dati. Questo viene fatto usando funzioni di casting come Number(), String(), Boolean()eSymbol()
let str = '5';
let num = Number(str);
console.log(num); //output: 5
Number(): LaNumber()funzione viene utilizzata per convertire un valore non numerico in un valore numerico. Ad esempio, se desideri convertire un valore stringa di "10" in un numero, devi utilizzare laNumber()funzione in questo modo:
let x = "5";
let y = x+10 // output: 510
let z= Number(x)+10;
console.log(y); // output: 510
console.log(z); // output: 15
let intValue = parseInt("3.14");
console.log(floatValue); // Output: 3
console.log(parseInt('22.5')); // Output: 22
console.log(parseFloat('22.5')); // Output: 22.5
console.log(Number('22.5')); // Output: 22.5
console.log(parseInt('070')); // Output: 70
console.log(parseFloat('070')); // Output: 70
console.log(Number('070')); // Output: 70
console.log(parseInt('1234blue')); // Output: 1234
console.log(parseFloat('1234blue')); // Output: 1234
console.log(Number('1234blue')); // Output: NaN
console.log(parseInt('0xFF')); // Output: 255
console.log(parseFloat('0xFF')); // Output: 0
console.log(Number('0xFF')); // Output: 255
console.log(parseInt("10 20 30")); // 10
console.log(parseFloat("10 20 30")); // 10
console.log(Number("10 20 30")); // NaN
let num = 10;
console.log(String(num)); // "10"
let bool = true;
console.log(String(bool)); // "true"
let obj = {name: "John"};
console.log(String(obj)); // "[object Object]"
let arr = [1, 2, 3];
console.log(String(arr)); // "1,2,3"
let date = new Date();
console.log(String(date)); // "Sun Jan 29 2023 18:52:01 GMT+0000 (Coordinated Universal Time)"
let value = 0;
console.log(Boolean(value)); // false
value = "hello";
console.log(Boolean(value)); // true
value = undefined;
console.log(Boolean(value)); // false
value = {};
console.log(Boolean(value)); // true
value = -1;
console.log(Boolean(value)); // true
Utilizzare il confronto di uguaglianza rigorosa ===invece del confronto di uguaglianza astratto ==. Evita di fare affidamento sulla coercizione di tipo implicita di JavaScript, specialmente nelle operazioni aritmetiche, e usa sempre il casting di tipo dove necessario.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































