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 相关文章推荐
javascript延时重复执行函数 lLoopRun.js
Jun 29 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
May 24 Javascript
jquery对dom的操作常用方法整理
Jun 25 Javascript
基于JavaScript代码实现微信扫一扫下载APP
Dec 30 Javascript
用jQuery实现可输入多选下拉组合框实例代码
Jan 18 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
React-redux实现小案例(todolist)的过程
Sep 29 Javascript
基于JS实现视频上传显示进度条
May 12 Javascript
vue实现简单加法计算器
Oct 22 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 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
paypal即时到账php实现代码
2010/11/28 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php 购物车完整实现代码
2014/06/05 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
开启PHP的伪静态模式
2015/12/31 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
CentOS6.5设置Django开发环境
2016/10/13 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
Python实现两款计算器功能示例
2017/12/19 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
人工神经网络算法知识点总结
2019/06/11 Python
Python实现12306火车票抢票系统
2019/07/04 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
本科生详细的自我评价
2013/09/19 职场文书
机关门卫岗位职责
2013/12/30 职场文书
加拿大留学自荐信
2014/01/28 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA