Cet article vous présente principalement la méthode de conversion de la valeur bool en js et les informations associées de "&&", "||", "!!". pour l'apprentissage de tous. Ou le travail a une certaine valeur de référence et d'apprentissage. Les amis qui en ont besoin peuvent venir jeter un œil ci-dessous.
Préface
La première chose que vous devez savoir est qu'il y a 6 valeursen js qui sont fausses, à savoir : 0, '', null, undefined, NaN et false, les autres (y compris {}, [], Infinity) sont vrais.
Vous pouvez utiliser la fonction Boolean() ou annuler deux fois pour obtenir la valeur booléenne de l'objet, tel que Boolean(undéfini ) et !!undéfini peut également obtenir la valeur booléenne false,
Pour 0, '', null, undéfini, NaN, {}, [], Infinity, la valeur booléenne est faux faux faux faux faux vrai vrai vrai.
Donc, une chose que nous savons est la suivante : la valeur booléenne d'un objet est vraie, même s'il s'agit d'un objet {}.
conversion de valeur booléenne
数据类型 | bool值转化 |
---|---|
undefined | undefined 转化为 false |
Object | null 转化为false,其他为 true |
Boolean | false 转化为 false,true 转化为 true |
Number | 0,NaN 转化为false,其他为 true |
String | "" 转化为 false,其他为 true |
"&&"
L'algorithme de l'opérateur "&&" en JavaScript est le suivant :
Si la valeur de l'expression à gauche de && est vraie, la valeur de l'expression à droite side est renvoyé ; sinon, l'expression sur le côté gauche est renvoyée. La valeur de la formule. Lorsque plusieurs expressions && sont évaluées ensemble, la valeur de la première expression qui est évaluée comme fausse est renvoyée. Si toutes les expressions sont évaluées comme vraies, la valeur de l'expression la plus à droite est renvoyée.
const aa = {'name': 'xx'}; const bb = aa && aa.age; // bb输出为undefined; let cc; const dd = cc && cc.name ? cc.name : undefined; // dd输出为undefined const dd = cc && cc.name; // dd输出为undefined;
Les résultats d'exécution des deux phrases de code ci-dessus sont les mêmes. Lors de l'écriture de code auparavant, j'ai toujours utilisé la méthode ci-dessus, mais j'ai constaté que certains tests uniques ne pouvaient pas être couverts, ce qui entraînait un problème très important. faible couverture de branche de test unique.Modification La méthode suivante peut très bien résoudre ce problème. L'effet de ces deux phrases est le même.
"||"
L'algorithme de l'opérateur "||" en javascript est le suivant :
Si la valeur de l'expression du côté gauche de "||" est vraie, renvoie la valeur de l'expression du côté gauche ; sinon, renvoie la valeur de l'expression du côté droit. Lorsque plusieurs expressions "||" sont utilisées ensemble, la valeur de la première expression dont le résultat de l'opération est vrai est renvoyée, si les résultats de l'opération de toutes les expressions sont faux, sinon la valeur de l'expression la plus à droite est renvoyée.
const aa = false || 'xx'; // aa输出为'xx'
"!!"
"!!" L'expression est forcée à être convertie en une valeur booléenne, et le résultat de l’opération est vrai ou faux.
const aa = 'xx'; const bb = !!aa; // bb输出为true const cc = !!(NaN || undefined || null || 0 || '' ); // cc为false;
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.
Articles connexes :
Implémentation d'une file d'attente de mise à jour asynchrone via nextTick() dans Vuejs
Comment implémenter un modèle 3D dans three.js
Tutoriel d'installation d'Angular CLI
Comment implémenter Toast à l'aide de ReactNative
Comment le faire en utilisant CommonsChunkPlugin Uniquement en extrayant les modules publics
peut-il y avoir des opérations complexes sur MVC dans AngularJS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!