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动画效果类封装代码
Aug 28 Javascript
利用Ext Js生成动态树实例代码
Sep 08 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
Jan 12 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
javascript定时器取消定时器及优化方法
Jul 08 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 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
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
vue项目首屏加载时间优化实战
2019/04/23 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
python绘制漏斗图步骤详解
2019/03/04 Python
python做反被爬保护的方法
2019/07/01 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
金士达面试非笔试
2012/03/14 面试题
安全生产活动月方案
2014/03/09 职场文书
给小学生的新年寄语
2014/04/04 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
商场周年庆活动方案
2014/08/19 职场文书
领导干部对照检查材料
2014/08/24 职场文书
2015年话务员工作总结
2015/04/29 职场文书
微观世界观后感
2015/06/10 职场文书
好员工观后感
2015/06/17 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
2019教师的学习计划
2019/06/25 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL