JavaScript中for-in遍历方式示例介绍


Posted in Javascript onFebruary 11, 2014

摘要:for-in遍历方式的循环计数器是字符串类型,遍历对象时为对象属性/方法名,遍历数组时为数组元素下标索引,与普通的for循环不同,for-in会将继承的属性/方法列出,这一点在使用时需要特别关注。

除了传统的for循环,JavaScript为遍历操作定义了for-in方式,根据数据源的不同,在使用时存在差异。
(1)遍历对象:

var fish = { 
head : 1, 
tail : 1, 
} 
for(var prop in fish) { 
console.log(fish[prop]); 
}

调试时观察:prop依次为'head','tail',即遍历对象属性时是以字符串类型存在的,循环计数器为对象的属性名。
(2)遍历数组
var arr = ['one', 'two', 'three']; 
for(var prop in arr) { 
console.log(prop); 
}

调试时观察:prop依次为'0','1',即遍历数组时仍是以字符串类型存在,不同的是循环计数器为数组元素的下标。(这时可以试试用for循环输出,结果与for-in是一致的)
如果代码中加入:
if(Object.prototype.clone === 'undefined') 
Object.prototype.clone = function() {};

则输出结果为:0,1,clone
如果这时用for循环输出,则仍为0,1;也就是说for-in循环会将当前操作的数据源所属类型具有的属性遍历出来(同样对对象fish用for-in时,也会输出clone),所以就要求在使用for-in遍历时拉着一根弦:如果仅对对象自有属性操作,需要将继承来的属性加以剔除,比如用hasOwnProperty()方法。
Javascript 相关文章推荐
document.compatMode介绍
May 21 Javascript
JS小框架 fly javascript framework
Nov 26 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
May 27 Javascript
js history对象简单实现返回和前进
Oct 30 Javascript
jquery中交替点击事件toggle方法的使用示例
Dec 08 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 Javascript
JS随机调用指定函数的方法
Jul 01 Javascript
关于原生js中bind函数的简单实现
Aug 10 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
vue自定义组件实现双向绑定
Jan 13 Vue.js
JS数组方法some、every和find的使用详情
Oct 05 Javascript
Chrome扩展页面动态绑定JS事件提示错误
Feb 11 #Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 #Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
Feb 11 #Javascript
js读取配置文件自写
Feb 11 #Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 #Javascript
JS(JQuery)操作Array的相关方法介绍
Feb 11 #Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 #Javascript
You might like
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php disk_free_space 返回目录可用空间
2010/05/10 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
php时区转换转换函数
2014/01/07 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
浅析JavaScript动画
2015/06/10 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
js实现验证码功能
2020/07/24 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python flask搭建web应用教程
2019/11/19 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
小学社团活动总结
2014/06/27 职场文书
开服装店计划书
2014/08/15 职场文书
会计求职自荐信范文
2015/03/04 职场文书
小学运动会通讯稿
2015/07/18 职场文书
家属联谊会致辞
2015/07/31 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
《绝招》教学反思
2016/02/20 职场文书
PL350与SW11的比较
2021/04/22 无线电