!! Il est généralement utilisé pour lancer l'expression suivante dans les données booléennes (booléen), c'est-à-dire qu'elle ne peut être vraie ou fausse;
Je vois souvent des exemples comme celui-ci:
La copie de code est la suivante:
var a;
var b = !! a;
A n'est pas défini par défaut. ! A est vrai, !! A est faux, donc la valeur de B n'est plus, non défini, ni d'autres valeurs, qui assure principalement la commodité du jugement ultérieur.
!! Il est généralement utilisé pour lancer l'expression suivante dans les données booléennes (booléen), c'est-à-dire qu'elle ne peut être vraie ou fausse;
Parce que JavaScript est un langage de type faible (les variables n'ont pas de types de données fixes), il doit parfois être jeté au type correspondant, tel que:
a = parseInt ("1234") a = "1234" -0 // Convertir en nombre b = 1234 + "// convertir en chaîne c = someObject.ToString () // converti l'objet en chaîneParmi eux, les premier et quatrième sont des conversions explicites, et les 2 et 3 sont des conversions implicites
Conversion booléenne, les règles de la convention JavaScript sont
Faux, indéfinis, nuls, 0, "" est faux
vrai, 1, "somestring", [objet] est vrai
Pour d'autres valeurs implicitement converties telles que null et non définies, le! L'opérateur produira de vrais résultats, de sorte que le but d'utiliser deux marques d'exclamation est de convertir ces valeurs en valeurs booléennes "équivalentes";
Jetons un coup d'œil:
var foo; alerte (! foo); // non dit, un point d'exclamation revient vrai; alerte (! goo); // dans null, un point d'exclamation revient vrai; var o = {flag: true}; var test = !! o.flag; // équivalent à var test = o.flag || false; alerte (test);Cet exemple démontre que lorsqu'il est non défini et nul, le retour d'un point d'exclamation est vrai, et le retour de deux points d'exclamation est faux, donc la fonction des deux points d'exclamation est que si la valeur de la variable est clairement définie (non nul / non défini / 0 / "et" valeurs équivalentes), le résultat sera retourné en fonction de la valeur réelle de la variable. S'il n'est pas défini, le résultat sera retourné.