Conversion de type 101 : Comprendre la coercition et la diffusion en JavaScript
La coercition de type et la conversion de type sont des concepts de programmation qui font référence au processus de conversion d'un type de données en un autre.
Type coercition :
La coercition de type fait référence à la conversion automatique des types de données qui se produit dans JavaScript lorsque différents types de données sont utilisés ensemble dans une opération. Par exemple, si un nombre et une chaîne sont additionnés, JavaScript convertira automatiquement le nombre en chaîne afin que l'opération puisse être effectuée.
let num = 5;
let str = "3";
console.log(num + str); //output: "53"
- Utilisation des opérateurs == ou != pour la comparaison, qui effectuent une coercition de type avant de faire une comparaison
- L'utilisation de l'opérateur unaire plus (
+) avant une valeur effectuera une conversion de type en nombre. Cependant, le+signe ne peut apparaître qu'une seule fois et ne doit pas être suivi d'un espace blanc. Par exemple :
let x = "5";
let y = +x;
console.log(typeof y); // output: number
D'autre part, la conversion de type fait référence à la conversion explicite des types de données. Ceci est fait en utilisant des fonctions de casting telles que Number(), String()etBoolean()Symbol()
let str = '5';
let num = Number(str);
console.log(num); //output: 5
Number(): LaNumber()fonction est utilisée pour convertir une valeur non numérique en une valeur numérique. Par exemple, si vous souhaitez convertir une valeur de chaîne de "10" en un nombre, vous utiliserez laNumber()fonction comme ceci :
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
Utilisez une comparaison d'égalité stricte ===au lieu d'une comparaison d'égalité abstraite ==. Évitez de vous fier à la coercition de type implicite de JavaScript, en particulier dans les opérations arithmétiques, et utilisez toujours la conversion de type si nécessaire.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































