chaîne et numéro booléen
Le type JavaScript sera converti en type correspondant en fonction de l'affectation.
var str = ""; alert (typeof (str)); // stringstr =; alert (typeof (str)); // nombrevar sum = str +; // + programme deux nombres pour ajouter alerte (sum); //
Ceci est plus évident et la valeur peut être calculée en un coup d'œil. Mais veuillez consulter la conversion suivante
var sum = "" + ""; alert (typeof (sum)); // StringAlert (sum); // var sum = "" +; alert (typeof (sum)); // StringAlert (sum); // var sum = + ""; alert (typeof (sum)); // stringAlert (typeof (sum)); // var div = "" / ""; alert (typeof (zone)); // NumberAlert (typeof (sub)); // var sub = "" - ""; alert (typeof (sub)); // NumberAlert (sub); // var div = "" / ""; alert (typeof (zone)); // NumberAlert (typeof (div)); // NumberAlert (div); //.
Si le type de numéro et le type de chaîne "+", le numéro sera converti directement en chaîne
Le "+" ci-dessus est assez spécial. Si c'est -, *, /; Ensuite, quel type sera-t-il converti à la fin?
var area = "" * "a"; alert (typeof (aire)); // nombreAlert (zone); // nanvar sub = "a" - ""; alert (typeof (sub)); // nansub = "a" -; alert (typeof (sub)); // nansub = "a" -; alert (typeof (sub)); // nanvar (div))); // nandiv = "a" /; alert (typeof (div)); // nan
Comme ci-dessus -, *, / sont le nombre arithmétique. La chaîne et le nombre ne peuvent pas effectuer de calculs, donc leurs valeurs sont nan. Numéro de type.
var a = true; alert (typeof (a)); // booleanvar b = "true"; var ab = a + b; alert (typeof (ab)); // stringAlert (ab); // TrueTruelerert (a == b); // faux
booléen et chaîne, les types booléens sont automatiquement convertis en chaîne "vrai", mais pourquoi n'est pas égal à b
Jetons un coup d'œil à cet exemple:
var c = ""; alert (typeof (c)); // stringvar d =; alert (typeof (d)); // nombresert (c == d); // true
Le principe de conversion est donné ici: (pour référence)
1. Si un opérande est un booléen, convertissez-le en valeur numérique avant de comparer l'égalité - Faux à 0 et fidèle à 1;
2. Si un opérande est une chaîne et que l'autre opérateur est une valeur numérique, la chaîne est convertie en valeur numérique avant de comparer l'égalité;
3. Si un opérande est un objet et l'autre l'opérande ne l'est pas, alors la valeur de la valeur () de l'objet est appelée et la valeur de type de base obtenue est comparée en fonction des règles précédentes.
Ensuite, lorsque vous comparez les chaînes et les types booléens, ce sera:
Cette conversion se produit: Boolean True se convertit d'abord en numéro 1, puis se convertit en chaîne "1", puis se compare. Le résultat doit être faux.
NULL ET NUMÉRAL STRING BOOLEAN UNDEFINE
var a = null; alert (typeof (a)); // objectvar b = "hello"; var ab = a + b; alert (typeof (ab)); // stringAlert (ab); // nullhellovar c =; var ac = a * c; alert (typeof (ac)); // NumberAlert (ac); // if (a) // false {} else {alert ("false");} var u; alert (a == u); //vraiD'après l'exemple donné, nous pouvons voir:
NULL est automatiquement converti en chaîne "null" en chaîne, représentant le nombre 0 en nombre, ce qui équivaut à false en jugement logique, et est le même que non défini lorsque la valeur est exprimée. Notez que == au lieu de ===.
Bien que == convertit son type de comparaison lors de la comparaison, son type de variable ne change pas à cause de ==.