Performance issues with JavaScript conditional statements
Conditional statements
Like loops, conditional statements will also change the running flow
There are two types of conditional statements in JavaScript
if-else
switch
But if- The else statement and the switch statement can be replaced with each other in many cases.
For example, the following code is equivalent
if(foo){ ...}else{ ...}
switch(foo){ case true: ... default: ...}
But when there are many conditions, use switch. It is easier to understand
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: ...}
If the number of conditions is very large, the switch statement runs faster and more obviously
To be precise : When the conditions increase, the if-else performance burden increases to a greater extent
(Most language switch statements use branch table branch table index to optimize)
And in JavaScript, the switch statement does not force type conversion. ,
That is, use the congruence operator for comparison
This way there will be no loss of type conversion
It is reasonable from a performance perspective
(if-else is suitable for judging two discrete values or several different value ranges, switch is suitable for judging multiple discrete values)
We are using if -else statements should be arranged in order from large to small probabilities
This is easy to understand, but it is easily overlooked by us
Another optimization point is to try to organize if-else into a series of nested if- else statement
This is similar to our mathematical dichotomy, which can reduce the scope and execution time
Like this
if(foo >= 1 && foo < 3){ //...}else if(foo >= 3 && foo < 5){ //...}else if(foo >= 5 && foo < 7){ //...}else{ //...}
if(foo >= 1 && foo < 5){ if(foo < 3){ //... }else{ //... } }else{ if(foo < 7){ //... }else{ //... } }
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; } }
function fn(a){ var retArr = [0,1,2,3,4,5,6,7]; return retArr[a]; }
When the number of conditions increases, the lookup table will produce almost no additional performance overhead
But it is more Suitable for situations where there is a logical mapping between a single key and a single value
that is very similar to a conditional statement? :
It is equivalent to if-else
The ternary operator is more suitable for situations where the return value is concerned
What does it mean, look at the code below
var foo;;if(flag){ foo = 1; }else{ foo = 2; }
var foo = flag ? 1 : 2;
flag? 1 : 2The return value
is directly assigned to the foo variable
This situation is very suitable for using the ternary operator
The above is the performance problem of conditional statements in JavaScript
Although we rarely use a large number of conditions
And the modern browser js engine is particularly powerful (such as the V8 engine []~( ̄▽ ̄) ~*)
But it doesn’t hurt to understand...

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



How to use WebSocket and JavaScript to implement an online speech recognition system Introduction: With the continuous development of technology, speech recognition technology has become an important part of the field of artificial intelligence. The online speech recognition system based on WebSocket and JavaScript has the characteristics of low latency, real-time and cross-platform, and has become a widely used solution. This article will introduce how to use WebSocket and JavaScript to implement an online speech recognition system.

WebSocket and JavaScript: Key technologies for realizing real-time monitoring systems Introduction: With the rapid development of Internet technology, real-time monitoring systems have been widely used in various fields. One of the key technologies to achieve real-time monitoring is the combination of WebSocket and JavaScript. This article will introduce the application of WebSocket and JavaScript in real-time monitoring systems, give code examples, and explain their implementation principles in detail. 1. WebSocket technology

Introduction to how to use JavaScript and WebSocket to implement a real-time online ordering system: With the popularity of the Internet and the advancement of technology, more and more restaurants have begun to provide online ordering services. In order to implement a real-time online ordering system, we can use JavaScript and WebSocket technology. WebSocket is a full-duplex communication protocol based on the TCP protocol, which can realize real-time two-way communication between the client and the server. In the real-time online ordering system, when the user selects dishes and places an order

As Vue becomes more and more widely used, Vue developers also need to consider how to optimize the performance and memory usage of Vue applications. This article will discuss some precautions for Vue development to help developers avoid common memory usage and performance problems. Avoid infinite loops When a component continuously updates its own state, or a component continuously renders its own child components, an infinite loop may result. In this case, Vue will run out of memory and make the application very slow. To avoid this situation, Vue provides a

How to use WebSocket and JavaScript to implement an online reservation system. In today's digital era, more and more businesses and services need to provide online reservation functions. It is crucial to implement an efficient and real-time online reservation system. This article will introduce how to use WebSocket and JavaScript to implement an online reservation system, and provide specific code examples. 1. What is WebSocket? WebSocket is a full-duplex method on a single TCP connection.

JavaScript and WebSocket: Building an efficient real-time weather forecast system Introduction: Today, the accuracy of weather forecasts is of great significance to daily life and decision-making. As technology develops, we can provide more accurate and reliable weather forecasts by obtaining weather data in real time. In this article, we will learn how to use JavaScript and WebSocket technology to build an efficient real-time weather forecast system. This article will demonstrate the implementation process through specific code examples. We

Usage: In JavaScript, the insertBefore() method is used to insert a new node in the DOM tree. This method requires two parameters: the new node to be inserted and the reference node (that is, the node where the new node will be inserted).

JavaScript tutorial: How to get HTTP status code, specific code examples are required. Preface: In web development, data interaction with the server is often involved. When communicating with the server, we often need to obtain the returned HTTP status code to determine whether the operation is successful, and perform corresponding processing based on different status codes. This article will teach you how to use JavaScript to obtain HTTP status codes and provide some practical code examples. Using XMLHttpRequest
