文档章节

JavaScript中的for in 循环

学霸猫
 学霸猫
发布于 2016/05/30 23:02
字数 313
阅读 9
收藏 0

for...in...用来遍历数组或者对象的属性

当遍历数组时,计时器 i 为数组的索引值

var arr = ["admin","manager","db"] ;
for(var i in arr){ 
console.log(i); // 0 1 2
} 

当遍历对象时,计时器 i 为对象的属性

var person={ 
name: "Admin", 
age: 21, 
address:"shenzhen" 
}; 
for(var i in person){ 
console.log(i); //name age address
}

但是在遍历对象时需要注意,如果遍历的对象有继承或者说遍历的对象是构造函数的实例等情况,就会连着原型对象中的属性和方法一同遍历出来

var Status = function(arg){
    this.arg = arg;
}
Status.prototype.getState = function(){
    return this.arg;
}
var obj = new Status('test string');
obj.getState();//test string
obj.spk = 'spk';

for(i in instance){
    console.log(i);//arg spk getState
}

但是原型对象中的属性并不是我们想要的,按照下面的代码处理即可

for(i in object){
  if(object.hasOwenProperty(i)){
      //...
  }
}

还有一点需要注意的是,for...in循环中的循环计数器是字符串,而不是数字。它包含当前属性的名称或当前数组元素的索引。 

在遍历过程中,也需要清楚,for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作(重要)

 

© 著作权归作者所有

学霸猫
粉丝 5
博文 99
码字总数 52419
作品 0
深圳
程序员
私信 提问
浅谈js的事件循环(Event Loop)

事件循环是js这门语言的一大特点。 了解事件循环机制,有助于日常开发中遇到的一些异步问题。 而且还是前端面试一经常考点。 故本人结合一些文章和个人的一些开发经验,浅淡一下 一,js是一门...

田小菜
05/08
0
0
JavaScript 执行机制-浏览器事件循环

大多数时候,我们去面试,都会遇到,让你说出一段代码的执行结果,或者说出其执行顺序。因为javascript是单线程的。 关于javascript javascript 是一门单线程语言,最新的H5中提出了webwork...

legendaryedu
04/04
0
0
好程序员web前端分享JS引擎的执行机制

  好程序员web前端分享JS引擎的执行机制,请先着重牢记两点!JS是单线程语言。 JS的EventLoop是JS的执行机制。深入了解JS的执行,就等于深入了解JS里的eventloop。 1、灵魂三问:JS为什么是...

好程序员IT
06/12
9
0
前端基础-JavaScript

开发工具与关键技术:DW/浏览器 ;简单使用js。 作者:刘佳明 撰写时间:2019年1月 18 日 前面已经随手写过了关于网页编辑的一些基础布局和标签的认识;这篇文章在这里为大家简单的介绍一下关...

没有,
01/18
0
0
深入理解JavaScript之Event Loop

前言 最近阅读《高性能JavaScript》时,第六章谈到“通过定时器将JavaScript执行代码的控制权先让给浏览器用于更新UI状态,然后再将控制权交回给JavaScript代码,这样就可以使得页面更为流畅...

天天天天才樱木花道
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部