Maison >interface Web >js tutoriel >Pourquoi l'opérateur Tilde est-il utilisé avant une expression en JavaScript ?
La signification de l'opérateur Tilde dans les expressions précédentes
L'opérateur tilde (~) est un opérateur au niveau du bit en JavaScript qui retourne tous les bits dans son opérande. Cet opérateur est rarement utilisé avant l'évaluation d'une expression, ce qui soulève des questions sur son objectif et sa signification.
Considérons l'exemple de code suivant :
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
Dans ce code, l'opérateur tilde est utilisé avant le fonction indexOf(). La fonction indexOf() renvoie l'index de la première occurrence d'une chaîne cible dans une chaîne. Si la chaîne cible n'est pas trouvée, elle renvoie -1.
Effet de l'opérateur Tilde
L'opérateur tilde convertit la valeur de retour de indexOf() en 32 -bit entier et retourne tous ses bits. Par exemple, si indexOf() renvoie -1 (indiquant que la chaîne cible n'a pas été trouvée), l'opérateur tilde inversera tous les bits de sa représentation binaire :
0000 0000 0000 0000 0000 0000 0000 0001 (original) => 1111 1111 1111 1111 1111 1111 1111 1110 (inverted)
Le résultat est un nombre positif qui est traité comme véridique en JavaScript. Par conséquent, l'expression ~'input,textarea'.indexOf(target.tagName.toLowerCase()) est évaluée à true si la chaîne cible n'est pas trouvée, et à false si elle est trouvée.
Utilisez Cas pour l'opérateur Tilde
Bien que rare, l'opérateur tilde a diverses utilisations, y compris :
Alternatives au Tilde Opérateur
Pour tester l'existence d'une valeur dans une chaîne ou un tableau, JavaScript propose désormais des méthodes dédiées :
Ces méthodes renvoient directement une valeur booléenne, ce qui en fait une alternative plus claire et efficace à l'opérateur tilde.
Conclusion
L'opérateur tilde, lorsqu'il précède une expression, convertit la valeur de l'expression en une représentation bit à bit et inverse tous ses bits. Il a plusieurs utilisations obscures mais est généralement déconseillé en raison de son manque de clarté et de sa pertinence réduite par rapport aux méthodes plus modernes comme Array.prototype.includes() et String.prototype.includes().
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!