Dans les opérations logiques js, 0, "", null, false, undefined et NaN seront tous jugés comme faux, et tout le reste sera jugé comme vrai.
||Calculez d'abord le premier opérande. S'il peut être converti en vrai, renvoyez la valeur de l'expression de gauche. Sinon, calculez le deuxième opérande. Même si l'opérande de l'opérateur || n'est pas une valeur booléenne, il peut toujours être considéré comme une opération booléenne OU, car quel que soit le type de valeur qu'il renvoie, il peut être converti en valeur booléenne.
Profitez de sa fonctionnalité de renvoi de valeurs non booléennes : utilisez || pour les opérandes non booléens pour sélectionner la première valeur définie et non nulle dans un ensemble de valeurs alternatives (la première est une valeur non fausse)
exemple:
var max = max_width || obj.max_width ||
var attr = attr ""; Cette opération est souvent utilisée pour déterminer si une variable a été définie, si elle n'est pas définie, donnez-lui une valeur initiale. Elle est plus utile lors de la définition d'une valeur par défaut pour un paramètre de fonction.
&&, il évalue d'abord la première expression, et si elle est fausse, la deuxième expression ne sera pas traitée, sinon les expressions suivantes continueront à être traitées ; Sélectionne la valeur de la première expression non vraie de gauche à droite et renvoie la valeur de la dernière expression si elle n'est pas trouvée.
Exemple : (le goût doit être soigneusement étudié)
2 && 's1' && '123' && 'sss' La valeur de l'expression est égale à 'sss'
2 && 's1' && '' && 'sss' La valeur de l'expression est égale à ''
2 && 's1' && NaN && 'sss' La valeur de l'expression est égale à NaN
si(a >=5){
alert("Bonjour");
}
Peut être simplifié en :
a >= 5 && alert("Bonjour");
La différence entre typeof 5 et typeof !!5 est une manière d'écrire plus rigoureuse. La fonction de !! est de convertir une variable d'autres types en type booléen. Par exemple, si(!!attr) => if(attr)
Les fonctionnalités de || et && dans js nous aident non seulement à rationaliser le code, mais également à réduire la lisibilité du code. Cela nous oblige à le peser nous-mêmes.
Implémentation intelligente de la fonction startWith dans JS, alert(!'asdf'.indexOf('s')) => !0 = true