JS三板斧——流程控制

本文详细介绍了JavaScript中的流程控制,包括if/elseif/else、switch语句以及各种循环结构如while、do-while和for。强调了条件判断的灵活性以及循环语句的效率对比,并提供了具体的代码示例。对于开发人员来说,理解和掌握这些基础知识至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS三板斧——流程控制

js流程控制思维导图

1.判断语句

前言:在js中判断语句的存在是非常广泛的,我们可以根据判断条件的数目选择合适的判断语句,条件比较少时,使用if/else if/else,条件比较多时用switch,条件非常多的时候可以将条件弄成一个数组,然后用查找的方式进行判断。

  1. if/else if/else

    在单条件下,判断true和false不一定要使用或者=来判断,我们可以直接使用数值本身结合js的特性来判断。

    if (null) // false

    if({存在对象}) // true

    if(undefined) //false

    if(定义了的变量) // true

    if(0)// false

    if(除0外的所有数) // true

    if("")// false

    if(除了空字符串外的所有字符串)// true

    if([])// true

    多条件与&& || 的使用下,我们也可以先用数值自身判空和双判断条件的断路机制(如果前面的条件成立,就不会判断后面的语句)来避免发生空指针异常的错误。

if( a && b) // 遵照&& 符号判断, a与b存在一个为假的值,全为假

if(a || b ) // 遵照 || 符号判断,a与b存在一个为真,全为真

一般项目中会这样写,来达到判null,判undefined的目的:

if(obj && obj == “test”)

&& 和 || 的特殊特性还可以用来赋值,可以了解一下:

image-20210708134532521

  1. switch

    前言:switch 语句根据expr表达式 的值,依次与 case 后表达式的值进行比较,如果相等,则执行其后的语句段,只有遇到 break 语句,或者 switch 语句结束才终止;如果不相等,则继续查找下一个 case。switch 语句包含一个可选的 default 语句,如果在前面的 case 中没有找到相等的条件,则执行 default 语句,它与 else 语句类似。

    js 的case 判断的是绝对相对===,值和类型都要相等

    js中的case可以是任意类型,可以是string类型,number类型,undefined等等,甚至还可以是一个自定义的函数。

    switch (expr)
      {
        case undefined:
          alert("undefined");
          break;
        case func:
          alert("function");
          break;
        case 100:
          alert("number");
          break;
        case "hello":
          alert("string");
          break;
    }
    

2.循环语句

前言:js的循环比较多,可以酌情选择。

效率上:while/do-while的 duff’s device 循环>for>for-of>foreach>for-in。

各自的缺点: while/do-while的 duff’s device 循环采用并行循环的方式,一次执行多次循环,所以耗费资源较多,而且结束语句要另外定义。

​ for循环需要设置循环的步数,也就是循环的i值。

​ for-of遍历的是数值的值,对于遍历对象不是很友好,需要借助Objects.keys()方法来遍历。

​ foreach循环写法比较简洁,但是不能使用break,continue,return进行结束或者跳过循环的操作。

​ for-in循环比较适合遍历对象,对于遍历数组的值,会将原型变量遍历进去,所以效率最低。

​ 综合情况下,使用for和for-of是最好的。

  • while

    var x = 0;
    var n = 99;
    while (n > 0) {
        x = x + n;
        n = n - 2;
    }
    x; // 2500
    
  • do-while

    do-whilewhile循环的唯一区别在于,在每次循环开始的时候判断条件,而不是在每次循环完成的时候判断条件:

    var n = 0;
    do {
        n = n + 1;
    } while (n < 100);
    n; // 100
    
  • for

    var x = 0;
    var i;
    for (i=1; i<=10000; i++) {
        x = x + i;
    }
    x; // 50005000
    
  • for-in

    var o = {
        name: 'Jack',
        age: 20,
        city: 'Beijing'
    };
    for (var key in o) {
        console.log(key); // 'name', 'age', 'city'
    }
    
  • for-of

    var arr = ['a', 'b', 'c', 'd'];
    for (let a of arr) {
      console.log(a); // a b c d
    }
    
  • foreach

    var arr = ['a', 'b', 'c', 'd'];
    arr.foreach(item => console.log(item) // a b c d)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值