在javascript中switch和if哪个执行的更快

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在javascript中switch和if哪个执行的更快相关的知识,希望对你有一定的参考价值。

例如我要选择一些东西。我可以使用
-------------------
if (a==1)
if (a==2)
if (a==4)
……
-------------------
我也可以使用
-------------------
switch(s)
case "1":
case "2":
case "4":
……

-------------------
那么哪个更快?还是都差不多?有没有测试的语句,有谁能帮忙些一个

参考技术A 应该是运算速度差不多。在情况比较多的情况下,用switch书写比较方便,节省屏幕空间,减少重复劳动 参考技术B <script>
var t,s0,s1;
t=new Date();
s0=t.getTime();
document.write("Time:<br />");
var a=null;
var x;
var count=400000;
for(var i=0;i<count;i++)
switch(a)
case true:
x=1;
break;
case false:
x=1;
break;
default:
x=1;


t=new Date();
s1=t.getTime();
document.write("switch: "+(s1-s0)+" ms");
document.write("<br />");
for(var i=0;i<count;i++)
if(a==true)
x=1;

else if(a==false)
x=1;

else
x=1;


s0=s1;
t=new Date();
s1=t.getTime();
document.write("ifelse: "+(s1-s0)+" ms");
document.write("<br />");
</script>

几组结果:

Time:
switch: 862 ms
ifelse: 941 ms

Time:
switch: 851 ms
ifelse: 952 ms

Time:
switch: 851 ms
ifelse: 941 ms本回答被提问者采纳

JavaScript 中if条件判断语句

 条件语句

在写代码时,经常会需要基于不同判断执行不同的动作;

您可以在代码中使用条件语句来实现这一点。

在 JavaScript 中,我们可使用如下条件语句:
1.使用 if 来规定要执行的代码块,如果指定条件为 true;
2.使用 else 来规定要执行的代码块,如果相同的条件为 false;
3.使用 else if 来规定要测试的新条件,如果第一个条件为 false;
4.使用 switch 来规定多个被执行的备选代码块。

 if 语句
单分支语句,由一个if组成,如果条件成立,则进入代码开始执行语句。

语法

if (条件) 
    如果条件为 true 时执行的代码
 

 实例:

let age = 20;
if(age >= 18)
console.log("已成年");

  

else 双分支语句
如其名,有两个分支线,如果if不成立,那么就会跳入else语句里面。

if (条件) 
    条件为 true 时执行的代码块
 else  
    条件为 false 时执行的代码块

实例:

let age = 16;
if(age >= 18)
console.log("已成年");
else
console.log("还未成年");

  

else if 多分支语句
多个if...else语句可以组合在一起,形成逻辑决策树。

语法

if (条件 1) 
    条件 1 为 true 时执行的代码块
 else if (条件 2) 
    条件 1 为 false 而条件 2 为 true 时执行的代码块
  else 
    条件 1 和条件 2 同时为 false 时执行的代码块

 需要注意的就是在多分支语句里面,如果进入到了某一个语句块,后面的条件就不会再进行判断,而是会直接跳出。

 例如:

let readline = require("readline-sync");
console.log("输入考试成绩:");
let score = readline.question("");
if(score > 100 || score < 0)
console.log("成绩输入有误?");
else if(score >= 90)
console.log("优秀");
else if(score >= 70)
console.log("良好");
else if(score >= 60)
console.log("合格");
else
console.log("不合格");

  

以上是关于在javascript中switch和if哪个执行的更快的主要内容,如果未能解决你的问题,请参考以下文章

java中if和switch哪个效率快

JS入门基础(if else 与 switch case / node安装)

if-else和switch-case哪个效率更高?看这四张图。

JavaScript 中if条件判断语句

Java-程序流程控制3-笔记

Javascript切换与if ... else if else