JavaScript 5 - Conversion de type vs coercition de type
Apr 01 2023
Coercition vs Conversion
La coercition de type et la conversion de type sont deux concepts liés mais distincts en JavaScript. Coercition de type : conversion implicite d'une valeur d'un type à un autre.
La coercition de type et la conversion de type sont deux concepts liés mais distincts en JavaScript.
Coercition de type : conversion implicite d'une valeur d'un type à un autre.
Conversion de type : conversion explicite d'une valeur d'un type à un autre.
Vous avez peut-être remarqué que si vous ajoutez une chaîne et un nombre ensemble, vous n'obtiendrez probablement pas la sortie souhaitée. Par exemple:
const string = "19"
const number = 5
console.log(string + number) // Output: 195, NOT 24
Exemples de coercition de type :
- Ajout d'un nombre et d'une chaîne : lorsque vous ajoutez un nombre et une chaîne en JavaScript, le nombre sera converti en chaîne et concaténé avec l'autre chaîne. Par exemple,
"5" + 2donnera la chaîne"52". - Comparaison de différents types : lorsque vous comparez des valeurs de différents types à l'aide de l'
==opérateur, JavaScript tentera de contraindre une ou les deux valeurs à un type commun avant d'effectuer la comparaison. Par exemple,0 == falserenverratrue. - Négation d'une valeur non booléenne : lorsque vous utilisez l'
!opérateur pour nier une valeur non booléenne, elle sera convertie en valeur booléenne. Par exemple,!""retourneratrueparce qu'une chaîne vide est fausse. - Conversion implicite en nombre : Lorsque vous utilisez une valeur non numérique dans une opération mathématique, elle sera convertie en nombre. Par exemple,
"5" * 2se traduira par le nombre10. - Conversion implicite en booléen : lorsque vous utilisez une valeur non booléenne dans un contexte booléen, elle sera convertie en valeur booléenne. Par exemple,
if ("hello") { ... }exécutera le code dans l'instruction if car la chaîne"hello"est véridique.
- Conversion explicite en chaîne : vous pouvez utiliser la
String()fonction pour convertir une valeur en chaîne. Par exemple,String(5)donnera la chaîne"5". - Conversion explicite en nombre : vous pouvez utiliser la
Number()fonction pour convertir une valeur en nombre. Par exemple,Number("5")se traduira par le nombre5. - Conversion explicite en booléen : vous pouvez utiliser la
Boolean()fonction pour convertir une valeur en booléen. Par exemple,Boolean(0)se traduira parfalse. - Conversion explicite en tableau : vous pouvez utiliser la
Array.from()méthode pour convertir un objet itérable (tel qu'une chaîne ou un objet de type tableau) en tableau. Par exemple,Array.from("hello")se traduira par le tableau["h", "e", "l", "l", "o"]. - Conversion explicite en expression régulière : vous pouvez utiliser le
RegExp()constructeur pour créer un objet d'expression régulière à partir d'une chaîne. Par exemple,new RegExp("hello", "i")créera une expression régulière qui correspond à la chaîne"hello"sans tenir compte de la casse.
Des exemples concrets où la coercition de type et la conversion de type pourraient être utiles incluent :
- Validation de l'entrée utilisateur : lors de l'acceptation de l'entrée d'un utilisateur, vous devrez peut-être convertir ou contraindre l'entrée dans un type différent pour vous assurer qu'elle répond à certaines exigences. Par exemple, vous devrez peut-être convertir l'entrée d'un utilisateur d'une chaîne en un nombre avant d'effectuer une opération mathématique dessus.
- Analyse de données provenant de sources externes : lors de la consommation de données provenant d'une source externe (telle qu'une API), vous devrez peut-être convertir ou contraindre les données dans un format compatible avec votre application. Par exemple, vous devrez peut-être analyser une chaîne de date dans un
Dateobjet avant de l'utiliser dans votre application. - Travailler avec différents types de données : lorsque vous travaillez avec des données de différents types, vous devrez peut-être convertir ou contraindre les données pour vous assurer qu'elles peuvent être utilisées dans le contexte où elles sont nécessaires. Par exemple, vous devrez peut-être convertir une représentation sous forme de chaîne d'une couleur
![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)



































