zoukankan      html  css  js  c++  java
  • es5中的for...in和ES6中的for…of

    ES5中的for…in
    for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。
    1.index索引为字符串型数字,不能直接进行几何运算
    2.遍历顺序有可能不是按照实际数组的内部顺序
    3.使用for in会遍历数组所有的可枚举属性,包括原型。例如上栗的原型方法method和name属性
    所以for in更适合遍历对象,不要使用for in遍历数组。
    // for in 可以遍历到myObject的原型方法method,如果不想遍历原型方法和属性的话,可以在循环内部判断一下,hasOwnPropery方法可以判断某属性是否是该对象的实例属性
    for (var key in myObject) {
      if(myObject.hasOwnProperty(key)){
        console.log(key);
      }
    }
    ES6中的forof
    for of遍历的只是数组内的元素,而不包括数组的原型属性method和索引name
    • for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continue和return语句
    • for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法
    for...of 循环可以与break、continue 和 return 配合使用,跳出循环
    forEach 循环无法中途跳出,break 命令或 return 命令都不能奏效
     
    for...in 循环主要是为了遍历对象而生,不适用于遍历数组
    for...of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象
  • 相关阅读:
    IIS中ASP.NET安全配置
    好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
    js取两位小数点
    json格式的ajax传输交互
    js全选与反选
    formdata,ajax提交数据
    js判断是否微信浏览器、IE浏览器
    js实现列表从下往上循环滚动
    绝对定位始终居中
    存储、字符串截取、两端对齐、样式绑定、微信调拨号功能
  • 原文地址:https://www.cnblogs.com/huxiuxiu/p/13720273.html
Copyright © 2011-2022 走看看