Maison >interface Web >js tutoriel >Pourquoi l'opérateur Tilde est-il utilisé avant une expression en JavaScript ?

Pourquoi l'opérateur Tilde est-il utilisé avant une expression en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-24 18:35:35656parcourir

Why is the Tilde Operator Used Before an Expression in 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 :

  • Programmation de bas niveau : Il peut manipuler les bits directement.
  • Optimisations des performances : Il peut être utilisé dans des astuces au niveau du bit. pour améliorer les performances dans certaines situations.
  • Truthy/Falsy Casting : Il peut être utilisé comme une astuce pour convertir la valeur de retour de indexOf() en une valeur véridique pour les cas non trouvés.
  • Troncation de nombre : Il peut être abusé de tronquer des nombres à 32 bits , exécutant efficacement Math.floor() pour les nombres positifs.

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 :

  • Array.prototype.includes() pour les tableaux
  • String.prototype.includes() pour strings

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn