Table des matières
Instructions conditionnelles
Table de recherche
Opérateur ternaire
Maison interface Web js tutoriel Problèmes de performances avec les instructions conditionnelles JavaScript

Problèmes de performances avec les instructions conditionnelles JavaScript

Feb 28, 2017 pm 02:48 PM
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{    ...}
Copier après la connexion
switch(foo){
    case true:        ...
    default:        ...}
Copier après la connexion

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{    
...}
Copier après la connexion
switch(foo){
    case 1:        ...
    case 2:        ...
    case 3:        ...
    case 4:        ...
    default:        ...}
Copier après la connexion

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{
    //...}
Copier après la connexion

Changer pour ceci

if(foo >= 1 && foo < 5){    if(foo < 3){
        //...
    }else{
        //...
    }
}else{    if(foo < 7){
        //...
    }else{
        //...
    }
}
Copier après la connexion

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;
    }
}
Copier après la connexion

Restructurer la fonction ci-dessus en ceci

function fn(a){
    var retArr = [0,1,2,3,4,5,6,7];    return retArr[a];
}
Copier après la connexion

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;
}
Copier après la connexion

Il vaut mieux le réécrire comme ça

var foo = flag ? 1 : 2;
Copier après la connexion

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) !


Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

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 mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

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

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

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

Notes de développement de Vue : évitez les problèmes courants d'utilisation de la mémoire et de performances Notes de développement de Vue : évitez les problèmes courants d'utilisation de la mémoire et de performances Nov 22, 2023 pm 02:38 PM

À 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 mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

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 : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

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 simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

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

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

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é).

See all articles