一个前端,爱跑步、爱吉他、爱做饭、爱生活、爱编程、爱南芳姑娘,爱我所爱。世间最温暖又无价的是阳光、空气与爱,愿它们能带你去更远的地方。

  • 文章
  • 心情
  • 照片墙
  • 留言板
  • 工具
  • 友链
  • biaoblog

    专注web开发技术分享

    重学if else吧!

    技术 10 2024-11-19 14:27

    起因。。

    最近在写代码的时候 做一个循环判断,

    需要逐个判断循环项的某些值去做相对应的逻辑处理

    大概处理的数据如下:

    let maps = [
    {
      ...balabala,
       hasA:true,
       hasB:true
    }
    ]
    
    
    for(let map of maps ){
      if(map.hasA){
       // some script A
      }else if(map.hasB){
      // some script B
      }
    }
    


    之前习惯了switch的写法,手动自己写break,这里竟然以为 hasA和hasB的相关代码都会执行。。。。

    还纠结了很久,后来查了一下GPT


    if:适合单独判断的条件,即使前面的条件满足,后续条件也会被检查。下列代码会执行some script A 也会执行 some script B

    let maps = [
    {
      ...balabala,
       hasA:true,
       hasB:true
    }
    ]
    
    
    for(let map of maps ){
      if(map.hasA){
       // some script A
      }
      if(map.hasB){
      // some script B
      }
    }
    


    else if:适合多个条件的互斥判断,只要前面的条件满足,后续的else if就不会被检查。 下列代码只执行some script A

    let maps = [
    {
      ...balabala,
       hasA:true,
       hasB:true
    }
    ]
    
    
    for(let map of maps ){
      if(map.hasA){
       // some script A
      }else if(map.hasB){
      // some script B
      }
    }
    


    if-else if是一个条件链,它是从上到下依次检查条件的:


    1. 先检查if条件。
    2. 如果if条件为true,执行对应的代码块,然后跳过整个else if链。
    3. 如果if条件为false,再依次检查else if条件,直到找到一个true为止。
    4. 如果所有条件都为false,则执行else(如果有的话)。



    汗颜。。。记录一下吧

    上一篇:没有了

    下一篇:前端url中的中文传参URL编码与解码

    文章评论

    评论列表(0