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+mapbar实现地图定位
Apr 09 Javascript
使用javascript过滤html的字符串(注释标记法)
Jul 08 Javascript
JS调试必备的5个debug技巧
Mar 07 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
Mar 13 Javascript
基于jQuery实现二级下拉菜单效果
Feb 01 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
vue之数据交互实例代码
Jun 16 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
js实现随机点名系统(实例讲解)
Oct 18 Javascript
vue实现随机验证码功能(完整代码)
Dec 10 Javascript
Vue 修改网站图标的方法
Dec 31 Vue.js
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基础学习之流程控制的实现分析
2013/04/28 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
浅谈js闭包理解
2019/04/01 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
python实现K最近邻算法
2018/01/29 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
基于python plotly交互式图表大全
2019/12/07 Python
python异步Web框架sanic的实现
2020/04/27 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
python 用struct模块解决黏包问题
2020/11/07 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
热能动力工程毕业生自荐信
2013/11/07 职场文书
校园招聘策划书
2014/01/09 职场文书
同学会感言
2015/07/30 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL