资讯专栏INFORMATION COLUMN

Javascript 对象那些事(持续更新)

CoreDump / 3087人阅读

摘要:一前言记录语言类型的一些问题。其它浏览器则完全按照对象定义的顺序遍历属性。所以,顺序这种事,还是要用数组来保证。详细请参考对象遍历顺序三后记参考链接对象遍历顺序

一 前言

记录javascript语言object类型的一些问题。

</>复制代码

  1. 1. typeof []; // object
  2. 2. typeof {};// object
  3. 3. typeof null; //object

这里讲的是第二种情况。

二 正文 1.for...in 会遍历原型链上的属性

</>复制代码

  1. class Super{
  2. constructor(val){
  3. this.value=val;
  4. }
  5. };
  6. const suber = {
  7. value:"suber"
  8. };
  9. suber.prototype = new Super("super");
  10. for(attr in suber){
  11. const val = suber[attr]
  12. console.log("attr-val=>",attr,val); //attr-val=> value suber attr-val=> prototype Super {value: "super"}
  13. }

这个问题很多人都应该知道。解决的办法也很多:
1) 使用hasOwnProperty(attr) 来取自有属性的值
2) 使用Object.keys(object) 来取得所有的自有属性key,然后object[key]来取得value

2.for...in 遍历的顺序不能保证

Properties order in objects is not guaranteed in JavaScript; you need to use an Array.

for...in 遍历的顺序是按道理来讲是按照出现的先后顺序,但是各家浏览器遍历顺序有所不同。

Chrome Opera 中使用 for-in 语句遍历对象属性时会遵循一个规律,它们会先提取所有 key 的 parseFloat 值为非负整数的属性, 然后根据数字顺序对属性排序首先遍历出来,然后按照对象定义的顺序遍历余下的所有属性。其它浏览器则完全按照对象定义的顺序遍历属性。

所以,顺序这种事,还是要用数组来保证。

详细请参考:JS对象遍历顺序

三 后记

参考链接:JS对象遍历顺序

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94667.html

相关文章

  • 前端那些小众而又精美的网站及工具

    摘要:写此文的目的是为了总结在开发中能增加我们开发速度及能给我们带来方便的工具与网站及一些小众框架只限于简介不负责教程如有相应的教程希望大家自荐或推荐我在这里感激不尽让我们发现美并记录它第一次写文章请多多包涵如有我没有写到的但又是一些好用的工具及 写此文的目的是为了总结在开发中能增加我们开发速度及能给我们带来方便的工具与网站及一些小众框架只限于简介不负责教程如有相应的教程希望大家自荐或推荐我...

    Edison 评论0 收藏0
  • 前端那些小众而又精美的网站及工具

    摘要:写此文的目的是为了总结在开发中能增加我们开发速度及能给我们带来方便的工具与网站及一些小众框架只限于简介不负责教程如有相应的教程希望大家自荐或推荐我在这里感激不尽让我们发现美并记录它第一次写文章请多多包涵如有我没有写到的但又是一些好用的工具及 写此文的目的是为了总结在开发中能增加我们开发速度及能给我们带来方便的工具与网站及一些小众框架只限于简介不负责教程如有相应的教程希望大家自荐或推荐我...

    tigerZH 评论0 收藏0
  • 前端那些小众而又精美的网站及工具

    摘要:写此文的目的是为了总结在开发中能增加我们开发速度及能给我们带来方便的工具与网站及一些小众框架只限于简介不负责教程如有相应的教程希望大家自荐或推荐我在这里感激不尽让我们发现美并记录它第一次写文章请多多包涵如有我没有写到的但又是一些好用的工具及 写此文的目的是为了总结在开发中能增加我们开发速度及能给我们带来方便的工具与网站及一些小众框架只限于简介不负责教程如有相应的教程希望大家自荐或推荐我...

    AlanKeene 评论0 收藏0
  • 前端计划——JavaScript中关于setTimeout的那些

    摘要:需要注意的是,及更早的浏览器不支持第一种语法中向延迟函数传递额外参数的功能。如果在不改变递归模式的前提下修善这段代码解决方案加入定时器题目四考察和系列解释立即的对象,是在本轮事件循环的结束时,而不是在下一轮事件循环的开始时。 前言:setTimeout是JavaScript中常见的一个window对象方法,本文将介绍关于它的一些基础知识和易出错的地方。 1、基础知识 作用:setTim...

    sihai 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<