


Problèmes de performances avec les instructions conditionnelles JavaScript
Instructions conditionnelles
Comme les boucles, les instructions conditionnelles modifieront également le flux en cours
Il existe deux types d'instructions conditionnelles en JavaScript
if-else
commutateur
if-else est notre plus couramment utilisé
Mais si - L'instruction else et l'instruction switch peuvent être remplacées l'une par l'autre dans de nombreux cas
Par exemple, le code suivant est équivalent
if(foo){ ...}else{ ...}
switch(foo){ case true: ... default: ...}
Quand il y a peu de conditions, les gens sont plus susceptibles utiliser if-else
Mais la condition Plusieurs commutateurs semblent plus faciles à comprendre
if(foo === 1){ ...}else if(foo === 2){ ...}else if(foo === 3){ ...}else if(foo === 4){ ...}else{ ...}
switch(foo){ case 1: ... case 2: ... case 3: ... case 4: ... default: ...}
Mais laquelle des deux instructions conditionnelles que nous utilisons a les meilleures performances
Si le nombre de conditions est très grande, l'instruction switch s'exécutera Plus rapidement et de manière plus évidente
Pour être précis : lorsque les conditions augmentent, la charge de performance if-else augmente dans une plus grande mesure
(la plupart des instructions de changement de langage utilisent des index de table de branchement de table de branchement pour optimiser)
Et en JavaScript, la conversion de type forcée ne se produira pas dans l'instruction switch
C'est-à-dire que l'opérateur de congruence est utilisé pour la comparaison
De cette façon, il n'y aura pas de perte de conversion de type
Nous utilisons donc if- lorsque le nombre de conditions est petit, sinon, lorsqu'il y a de nombreuses conditions, il est raisonnable d'utiliser switch
du point de vue des performances
(if-else convient pour juger deux valeurs discrètes ou plusieurs plages de valeurs différentes, switch convient pour juger plusieurs valeurs discrètes)
Lorsque nous utilisons des instructions if-else, nous devons les organiser dans l'ordre des probabilités grandes à petites
C'est facile à comprendre, mais nous l'ignorons facilement
Un autre point d'optimisation est d'essayer de faire en sorte que le if -else soit organisé en une série d'instructions if-else imbriquées
Ceci est similaire à notre dichotomie mathématique, qui peut réduire la portée et le temps d'exécution
Comme ça
if(foo >= 1 && foo < 3){ //...}else if(foo >= 3 && foo < 5){ //...}else if(foo >= 5 && foo < 7){ //...}else{ //...}
Changer pour ceci
if(foo >= 1 && foo < 5){ if(foo < 3){ //... }else{ //... } }else{ if(foo < 7){ //... }else{ //... } }
Peut améliorer l'efficacité
Table de recherche
Dans certains Dans des cas particuliers, l'utilisation de la méthode "table de recherche" a des performances très élevées, lorsqu'il y a un grand nombre de conditions Suivant
function fn(a){ switch(a){ case 0: return 0; case 1: return 1; case 2: return 2; case 3: return 3; case 4: return 4; case 5: return 5; case 6: return 6; case 7: return 7; } }
Restructurer la fonction ci-dessus en ceci
function fn(a){ var retArr = [0,1,2,3,4,5,6,7]; return retArr[a]; }
Ceci est non seulement concis et lisible, mais offre également de meilleures performances
Lorsque le nombre de conditions augmente, la table de recherche ne produira presque aucune surcharge de performances supplémentaire
Mais elle est plus adaptée aux situations où il existe une correspondance logique entre un une seule clé et une seule valeur
Opérateur ternaire
Aussi Un opérateur ternaire
qui est similaire à une instruction conditionnelle ? :
est équivalent à if-else
L'opérateur ternaire est plus adapté aux situations où la valeur de retour est concernée
Qu'est-ce que cela signifie ?
var foo;;if(flag){ foo = 1; }else{ foo = 2; }
Il vaut mieux le réécrire comme ça
var foo = flag ? 1 : 2;
Concentrez-vous sur la valeur de retour de flag ? 1 : 2
Elle est directement affectée à la variable foo
Cette situation est très adaptée à l'utilisation de l'opérateur ternaire
Ce qui précède concerne les problèmes de performances des instructions conditionnelles en JavaScript
Bien que nous utilisions rarement un grand nombre de conditions
et que les moteurs js des navigateurs modernes soient également très puissants (comme le moteur V8 [] ~( ̄▽ ̄)~*)
Mais cela ne fait pas de mal d'en savoir quelque chose...
Ce qui précède est le contenu des problèmes de performances des instructions conditionnelles JavaScript Pour plus de contenu connexe. , veuillez faire attention au site Web PHP chinois (www.php.cn) !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

À mesure que Vue devient de plus en plus largement utilisée, les développeurs de Vue doivent également réfléchir à la manière d'optimiser les performances et l'utilisation de la mémoire des applications Vue. Cet article abordera certaines précautions à prendre pour le développement de Vue afin d'aider les développeurs à éviter les problèmes courants d'utilisation de la mémoire et de performances. Évitez les boucles infinies Lorsqu'un composant met continuellement à jour son propre état ou qu'un composant restitue continuellement ses propres composants enfants, une boucle infinie peut en résulter. Dans ce cas, Vue manquera de mémoire et rendra l'application très lente. Pour éviter cette situation, Vue propose un

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).
