Expression conditionnelle avec opérateur Tilde précédent
En JavaScript, un opérateur tilde (~) peut précéder une expression pour effectuer une négation au niveau du bit. Lorsque vous travaillez avec des expressions conditionnelles, cet opérateur peut avoir une utilisation spécifique.
Exemple de code :
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
Explication :
La fonction indexOf() renvoie -1 si la valeur cible n'est pas trouvée. En annulant cette valeur à l'aide de l'opérateur ~, nous la convertissons effectivement en véridique (toute valeur non nulle) pour les correspondances et en fausse (-1) pour les non-correspondances.
Opération au niveau du bit :
En JavaScript, les nombres sont représentés en interne sous forme d'entiers de 32 bits. L'opérateur ~ retourne tous les bits de son opérande, les inversant ainsi.
Par exemple, si la valeur de 'input,textarea'.indexOf( target.tagName.toLowerCase() ) est 1 (représentant le caractère 'i'), sa représentation binaire serait :
0000 0000 0000 0000 0000 0000 0000 0001
L'application de l'opérateur ~ retourne tous les bits, ce qui entraîne dans :
1111 1111 1111 1111 1111 1111 1111 1110
La valeur résultante est -2 dans la représentation du complément à 2.
Résultat conditionnel :
Dans l'expression conditionnelle, la valeur de ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) est évalué pour déterminer s'il faut attribuer une « valeur » ou 'innerHTML' à la variable attr. Si la cible est trouvée, l'expression sera évaluée comme véridique, ce qui entraînera l'attribution d'une « valeur » à attr. Sinon, si la cible n'est pas trouvée, l'expression sera évaluée comme fausse, ce qui entraînera l'attribution de « innerHTML » à attr.
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!