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 相关文章推荐
JS与框架页的操作代码
Jan 17 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
Sep 28 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
js文件Cookie存取值示例代码
Feb 20 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
Jun 06 Javascript
javascript删除一个html元素节点的方法
Dec 20 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
Angular2 http jsonp的实例详解
Aug 31 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 Javascript
Vue实现跑马灯效果
May 25 Javascript
原生js实现弹窗消息动画
Nov 20 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
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
PHP防CC攻击实现代码
2011/12/29 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
用python实现百度翻译的示例代码
2018/03/09 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python3安装crypto出错及解决方法
2019/07/30 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
初中音乐教学反思
2014/01/12 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
数学系毕业生求职信
2014/05/29 职场文书
道路施工安全责任书
2014/07/24 职场文书
小学感恩节活动总结
2015/03/24 职场文书
消防隐患整改通知书
2015/04/22 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python