zoukankan      html  css  js  c++  java
  • for、forEach、for-in与for-of的区别

    let arr=[1,2,3,4,5];
    arr.b='100';

    for

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

    for是编程式

    forEach

    arr.forEach(function(i){
        console.log(item);
    });

    forEach是声明式(不关心如何实现),没办法使用 break 语句跳出循环,或者使用return从函数体内返回。

    for in

    for(let key in arr){
        console.log(key);
    }
    1. key会变成字符串(String)类型。
    2. 包括数组的私有属性也可以打印出来,即循环不仅会遍历数组元素,还会遍历任意其他自定义添加的属性,如,arr上面包含自定义属性,arr.b,那这次循环中也会出现此b属性。
    3. 某些情况下,上述代码会以随机顺序循环数组。

    for of

    for(let val of arr){
        console.log(val);
    }

    支持return,并且是值of数组(不能遍历对象) 
    1. 可以避免所有 for-in 循环的陷阱 
    2. 不同于 forEach(),可以使用 break, continue 和 return 
    3. for-of 循环不仅仅支持数组的遍历。同样适用于很多类似数组的对象 
    4. 它也支持字符串的遍历 
    5. for-of 并不适用于处理原有的原生对象

  • 相关阅读:
    java 多线程面试题
    finally语句块一定会被执行吗
    redis 数据结构
    哪些可以作为GC ROOT
    mybatis 源码分析--日志分析
    mybatis selectKey
    spring cache 和redis
    kafka是如何保证消息不被重复消费的
    kafka面试题及答案
    浅谈:2019 前端面试题
  • 原文地址:https://www.cnblogs.com/xzybk/p/12532653.html
Copyright © 2011-2022 走看看