JavaScript中关键字 in 的使用方法详解


Posted in Javascript onOctober 17, 2016

for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。

对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以

最好数组使用正常的for循环,对象使用for-in循环

对于对象 ,迭代出来的是对象的属性;

var obj = {


"key1":"value1",


"key2":"value2",


"key3":"value3"

};

function EnumaKey(){


for(var key in obj ){



alert(key);


}


}


function EnumaVal(){



for(var key in obj ){




alert(obj[key]);




}



}

javascript中in关键字还有下面的作用

定义:

in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。

var Fn = function () { this.age = 1; };
Fn.prototype.name = 'jim';
// Fn.prototype.age = undefined;
var f = new Fn();
// hasOwnProperty
// 如何判断属性是被继承的???
console.log( 'age' in f && !f.hasOwnProperty( 'age' ) );
// age 可能存在原型链上, 也可能不存在
// 如果属性值就是 null 或 undefined, 那么此时 f.age 就无法判断了

对于一般的对象属性需要用字符串指定属性的名称

如:

var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar // returns true
"model" in mycar // returns true

如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false,如:

var mycar = {make: "Honda", model: "Accord", year: 1998};
delete mycar.make;
"make" in mycar; // returns false
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; // returns false

如果你把一个属性值设为undefined,但是没有使用delete操作符,使用in检查,会返回true.

var mycar = {make: "Honda", model: "Accord", year: 1998};
mycar.make = undefined;
"make" in mycar; // returns true
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
3 in trees; // returns true

以上所述是小编给大家介绍的JavaScript中关键字 in 的使用方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
经典的解除许多网站无法复制文字的绝招
Dec 31 Javascript
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
js制作的鼠标悬浮时产生的下拉框效果
Oct 27 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
jquery实现可关闭的倒计时广告特效代码
Sep 02 Javascript
js实现上下左右弹框划出效果
Mar 08 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
Apr 10 Javascript
Angular 2应用的8个主要构造块有哪些
Oct 17 #Javascript
jQuery表单验证简单示例
Oct 17 #Javascript
jQuery右下角悬浮广告实例
Oct 17 #Javascript
WEB前端实现裁剪上传图片功能
Oct 17 #Javascript
Javascript获取background属性中url的值
Oct 17 #Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
Oct 17 #Javascript
jquery checkbox的相关操作总结
Oct 17 #Javascript
You might like
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
Python基于有道实现英汉字典功能
2015/07/25 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
python线程优先级队列知识点总结
2021/02/28 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
教师专业自荐书范文
2014/02/10 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
党员发展大会主持词
2015/07/03 职场文书
商业计划书范文
2019/04/24 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript