• for...in 和 for...of 区别


    原因:

    工作中用过for...in,但是没有实际研究过,通过延伸知识点,又发现了一些好玩的东西,因此深入了解一些,加深印象

    for...in

    对象时候,枚举属性,可遍历对象键值

    
    let obj = {
        a:1,
        b:2
    }
    
    
    for(let key in obj){
        console.log(key)
    }
    
    //输出
    //a
    //b
    
    

    数组时,枚举下标

    var arr = ['ONE', 'TWO', 'THREE'];
    for (var i in arr) {
       console.log(i);
    }
    
    //输出
    //0
    //1
    //2
    
    

    且可以输出索引和值

    var arr = [1, 2, 3];
    for (var i in arr) {
       console.log(i, arr[i]);
    }
    // 结果是:
    // 0 1
    // 1 2
    // 2 3
    

    for...of 遍历数组,字符串等有可迭代的数据结构,不支持对象

    var arr = [1, 2, 3];
    
    for (let value of arr) {
      console.log(value);
      if (value == 2) {
        break;
      }
    }
    // 结果是:
    // 1
    // 3
    
    
    

    //迭代字符串

    
    let str = 'wht';
    
    for (let value of str) {
      console.log(value);
    }
    // 结果是:
    // "w"
    // "h"
    // "t"
    

    //迭代类数组

    //节点对象通常是用[].slice.call(),for...of也可以
    let elements = document.querySelectorAll('body');
    
    for (let element of elements) {
      console.log(element.tagName);
    }
    
    

    总结:

    for in 和for of 区别

    1、for...of无法遍历对象

    2、for...in是遍历的索引,for...of遍历的是值

    3、for...of支持类数组和字符串遍历且支持break,contain,return

  • 相关阅读:
    Linq-分页查询
    思维导图软件xmind和mindmanager哪个更好
    Enterprise Architect使用教程
    敏捷开发之Scrum
    总结---4
    判断单链表是否存在环
    设计模式分类
    实用手册:130+ 提高开发效率的 vim 常用命令
    Reverse Linked List II
    Single Number and Single Number II
  • 原文地址:https://www.cnblogs.com/hanhaiyuntao/p/14332814.html
Copyright © 2020-2023  润新知