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 相关文章推荐
JavaScript 动态改变图片大小
Jun 11 Javascript
Mootools 1.2教程 函数
Sep 15 Javascript
基于jquery的气泡提示效果
May 31 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
Mar 22 Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 Javascript
Javascript让DEDECMS告别手写Tag
Sep 01 Javascript
JQuery悬停控制图片轮播——代码简单
Aug 05 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
angular实现商品筛选功能
Feb 01 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将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
python获取代理IP的实例分享
2018/05/07 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
浅述python中深浅拷贝原理
2018/09/18 Python
python实现五子棋人机对战游戏
2020/03/25 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
特色冷饮店创业计划书
2014/01/28 职场文书
校园之星获奖感言
2014/01/29 职场文书
运动会横幅标语
2014/06/17 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
村级个人对照检查材料
2014/08/22 职场文书
总经理岗位职责
2015/02/04 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
Django程序的优化技巧
2021/04/29 Python
Python基础之操作MySQL数据库
2021/05/06 Python
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
Nginx速查手册及常见问题
2022/04/07 Servers