zoukankan      html  css  js  c++  java
  • javascript总for of和for in的区别?

    for in是ES5标准,for of是ES6标准;

    for in是遍历对象属性,for of是遍历对象元素。

    for of兼容性还不够,移动端安卓微信浏览器貌似不支持,苹果的可以;web端IE支持也不够,chrome可以。

    先说结论:

    1. 推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of

    2. for...in循环出的是key,for...of循环出的是value

    3. 注意,for...of是ES6新引入的特性。修复了ES5引入的for...in的不足

    4. for...of不能循环普通的对象,需要通过和Object.keys()搭配使用

    var student={
        name:'wujunchuan',
        age:22,
        locate:{
            country:'china',
            city:'xiamen',
            school:'XMUT'
        }
    }
    for(let key in student){
        console.log(key); //输出的是属性
    console.log(student[key]); //输出的是属性值
    } //name age locate
    var student={
        name:'wujunchuan',
        age:22,
        locate:{
            country:'china',
            city:'xiamen',
            school:'XMUT'
        }
    }
    for(let key of Object.keys(student)){
        console.log(key); //使用Object.keys()方法获取对象key的数组
    console.log(student[key]) ;//输出的是属性值
    }
    var arr= ['a','b','c']
    for(let key in arr){
        console.log(key);//输出的是  键名 0 1 2
        console.log(arr[key]);//输出的是 键值 a b c
    }
    var arr= ['a','b','c','d','e']
    for(let value of arr){
        console.log(value);//输出的是 键值 a b c d e
    }
    var arr= ['a','b','c','d','e']
    for(let key of arr.keys()){
        console.log(key);//输出的是键名 0 1 2 3 4 
    }
    var arr= ['a','b']
    for(let case of arr.entries()){
        console.log(case);//输出的是键值对 [0,'a'] [1,'b']
    }
  • 相关阅读:
    bzoj1027 状压dp
    CodeForces755F 贪心 + 多重背包二进制优化
    CodeForces632E 神奇的多重背包
    POJ3662 SPFA//二分 + 双端队列最短路
    bzoj1233 单调队列优化dp
    POJ3417 LCA+树dp
    Network
    树网的核/[SDOI2011]消防
    [APIO2010]巡逻
    核心城市
  • 原文地址:https://www.cnblogs.com/jkr666666/p/8033714.html
Copyright © 2011-2022 走看看