zoukankan      html  css  js  c++  java
  • 关于js中for in和foreach in的区别

    js 中for in 和foreach in的区别
    两个的作用都用来遍历对象,但为什么有了for in语句了还要foreach in语句呢,后来看了下foreach in开发的文档,foreach in是作为E4X标准的一部分在javascript 1.6中发布的,而且E4X不是ECMAScript标准的一部分。

    foreach…in语句已被废弃,E4X中的大部分特性已被删除,但考虑到向后兼容,foreach…in只会被禁用而不会被删除,可以使用ES6中新的for…of语句来代替。


    var 小青年 = { 身高:"181CM", 体重:"62公斤", 年龄:23 }; for (var i in 小青年){ document.write("i = " + i + "..................小青年[i] = " + 小青年[i] + "<br>"); } /* 结果 i = 身高..................小青年毛[i] = 181CM i = 体重..................小青年[i] =62公斤 i = 年龄..................小青年[i] = 23 */ foreach (var i in 小青年){ document.write("i = " + i + "..................小青年[i] = " + 小青年[i] + "<br>"); } /* 结果 i = 181CM..................小青年[i] = undefined i = 62公斤..................小青年[i] = undefined i = 23..................小青年[i] = undefined */

    注意变量i的值是不一样的,for each in无法获得对象的属性名,只能获取到属性值

    如果你想遍历对象,建议还是使用for in
    1,for in在遍历对象伤还是比for each in功能更加强大for in不仅能遍历处所有属性名和属性值,foreach in只能遍历出属性值
    2,for in是javascript 1.0就出来的语法,foreach in是javascript 1.6才出来的语法,很多浏览器是 不支持的,比如IE6,7,8是不支持的,所以还是推荐使用for in

    
    同时两者都能实现对数组的遍历
    建议大家在遍历数组时,推荐不要使用for in语句和for each in语句,因为它们两无法保证遍历数组的顺序。
  • 相关阅读:
    解决Servlet无法换行
    Servlet页面解析中文乱码问题
    IDEA2020版创建Servlet(Web项目)完整教程
    SPFA算法
    最短路算法Dijkstra
    搜索与图论总结
    Kruskal算法
    第10章 嵌入式Linux 的调试技术
    第9章 硬件抽象层:HAL
    第八章 让开发板发出声音:蜂鸣器驱动
  • 原文地址:https://www.cnblogs.com/liupeng61624/p/3932030.html
Copyright © 2011-2022 走看看