美文网首页
2020-08-24 javascript for 、 forE

2020-08-24 javascript for 、 forE

作者: Slash_Youth | 来源:发表于2020-09-07 22:07 被阅读0次

    2020-08-24 javascript for 、 forEach 的区别
    相信很多小伙伴在编程中会疑惑 for 循环和foreach的区别,特地整理了一下:

    for(let i =0;i<=5;i++){
      console.log(i)
    }f
    
    let animals = [
      { name: 'Joey', species: 'cow' },
      { name: 'Natasha', species: 'chicken' },
      { name: 'Ed', species: 'pig' },
      { name: 'Paul', species: 'fish' },
      { name: 'Asal', species: 'cat' }
    ];
    
    animals.forEach(animal=>{
      console.log(animal.name)
    })
    
    for(let i=0;i<animals.length;i++){
      console.log(animals[i].name)
    }
    

    区别 :
    可以说for和forEach 没有啥区别。
    但是:for循环中可以break, forEach 不可以
    for 循环需要临时变量i 如果多次嵌套循环,要多个临时变量 如i、j、k 等 , 而且获取值时 需要animals[i] ;
    但是用forEach ,则可以避免这个问题,且forEach 代码更少;

    for 循环还有个缺点是:
    Wikipedia defines an off-by-one error as:

    An off-by-one error (OBOE), also commonly known as an OBOB (off-by-one bug) or “that extra inch you didn’t really want”, is a logic error involving the discrete equivalent of a boundary condition. It often occurs in computer programming when an iterative loop iterates one time too many or too few.

    即循环次数有可能会不小心写错 例如

    for (let i=0;i<=animals.length;i++)
    {
    console.log(animals[i]);
    }
    

    这段代码看着很简单,但是在 i< ,i<= 的 地方很容易多循环一次出现下标溢出。
    forEach 则可以避免这个问题。

    以上,大部分情形我喜欢用forEach。

    与君共勉

    相关文章

      网友评论

          本文标题:2020-08-24 javascript for 、 forE

          本文链接:https://www.haomeiwen.com/subject/scigjktx.html