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 相关文章推荐
利用json获取字符出现次数的代码
Mar 22 Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
javascript设计模式--策略模式之输入验证
Nov 27 Javascript
基于JavaScript实现下拉列表左右移动代码
Feb 07 Javascript
AngularJS 防止页面闪烁的方法
Mar 09 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
Mar 27 Javascript
react native实现往服务器上传网络图片的实例
Aug 07 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
Nov 08 Javascript
JS数组splice操作实例分析
Oct 12 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
js同源策略详解
2015/05/21 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
python批量修改文件编码格式的方法
2018/05/31 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
学校消防安全制度
2014/01/30 职场文书
八一慰问活动方案
2014/02/07 职场文书
联欢晚会主持词
2014/03/25 职场文书
物流管理专业求职信
2014/05/29 职场文书
陕西导游词
2015/02/04 职场文书
四则混合运算教学反思
2016/02/23 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
dubbo服务整合zipkin详解
2021/07/26 Java/Android