Lors de l'exécution d'opérations telles que -, *, /, ==, != en JavaScript, si les types de valeur sur les côtés gauche et droit de l'opérateur sont incohérents avec le type attendu, JavaScript convertira les valeurs sur des deux côtés de l'opérateur dans le type attendu. Recommencez l'opération. Lorsque le type de valeur attendu est une chaîne, JavaScript convertira la valeur en chaîne ; lorsque le type de valeur attendu est un nombre, JavaScript convertira la valeur en nombre (si elle ne peut pas être convertie en valeur numérique, NaN sera renvoyé par exemple). :
Règles de conversion de type valeur
Pour les règles de conversion de valeurs en JavaScript, veuillez vous référer au tableau 3-2 des conversions de types JavaScript dans le livre "JavaScript – The Definitive Guide". Certains des endroits les plus remarquables sont :
1. Le résultat après non défini est converti en nombre est NaN.
2. Le résultat de la conversion de null en nombre est 0.
3. Le résultat de la conversion de la chaîne vide "" en nombre est 0.
4. Le résultat après conversion de -0 en chaîne est "0".
5. Le résultat de la conversion du tableau vide [] en nombre est 0.
6. Lorsqu'un tableau avec un seul membre numérique (tel que [9]) est converti en nombre, le résultat est la valeur numérique (9).
Lorsque JavaScript convertit une chaîne en nombre, il existe deux règles intéressantes :
1. JavaScript supprimera les caractères vides au début et à la fin de la chaîne avant de la convertir, afin qu'une chaîne comme "42" puisse être convertie avec succès en nombre 42.
2. Après avoir supprimé les caractères vides au début et à la fin, si la chaîne contient encore des caractères non numériques, la chaîne sera convertie en NaN. Par exemple : « 3 m » sera converti en NaN.
Exemple :
Conversion et comparaison des types de valeurs
En JavaScript, l'utilisation de l'opérateur égal (==) implique une conversion de type valeur : si les types de valeur des deux côtés de l'opérateur == sont incohérents, alors JS les convertira en types cohérents avant de porter un jugement. Il convient de noter que deux valeurs de types différents peuvent être équivalentes après la conversion de type, mais cela ne signifie pas que le résultat de l'utilisation de l'opérateur == sur elles doit être vrai. Un exemple simple est indéfini et faux : après avoir converti undéfini en type booléen, le résultat s'avère faux, mais en fait le résultat de undéfini==false est faux.
Conversion de type explicite
L'utilisation de la conversion de type automatique de JavaScript est très pratique, mais elle peut aussi facilement causer des problèmes tels que la maintenabilité du code. Afin de rendre le code du programme plus clair et de réduire l'ambiguïté, une conversion de type explicite est parfois utilisée dans les programmes JS :
Utilisation de la conversion de type automatique
En JS, vous pouvez utiliser la conversion automatique des types de valeur et utiliser des opérateurs pour obtenir le même effet qu'une conversion explicite, tels que :