js for in 和 for of的区别

for in是ES5标准,遍历key(属性名),并且原型链上的所有属性也会被遍历。过滤原型链上的属性可以用hasOwnProperty()方法。for in遍历后不能保证顺序(也就是顺序可能会被打乱)

var buz = {
    fog: 'stack'
};

for (var name in buz) {
    if (buz.hasOwnProperty(name)) {
        alert("this is fog (" + name + ") for sure. Value: " + buz[name]);
    }
    else {
        alert(name); // toString or something else
    }
}

for of 是ES6标准,遍历value(属性值),这个方法修复for in存在的缺陷。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • for...in 递归的对象是object的属性for...of 递归的对象是一系列可递归的可迭代对象,例如Arr...
    V_Jan阅读 3,382评论 0 0
  • JavaScript面向对象程序设计 本文会碰到的知识点:原型、原型链、函数对象、普通对象、继承 读完本文,可以学...
    moyi_gg阅读 4,106评论 0 2
  • 前言 本文作为对本书的一些知识点的收集 正文 1. LHS 和 RHS 当变量出现在赋值操作的左侧时进行 LHS...
    sunxiaochuan阅读 8,685评论 0 3
  • 小编导读 人对美丽的追求总是无穷无尽的,如今整容、医学美容市场的红火就证明了这一点。 然而,近两天,小编的朋友圈频...
    阅读中医阅读 2,707评论 0 0
  • 冲个热水澡,躺在床上,才感觉到是多么舒适和安全,全身的疲惫与不安总算是找到了栖息之地,慢慢的变得平静。躺了一会,脑...
    renyangfar阅读 2,953评论 0 1