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 相关文章推荐
JS与C#编码解码
Dec 03 Javascript
js 实现浏览历史记录示例
Apr 20 Javascript
使用javascript实现监控视频播放并打印日志
Jan 05 Javascript
jQuery预加载图片常用方法
Jun 15 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
聊一聊JS中this的指向问题
Jun 17 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
使用use注册Vue全局组件和全局指令的方法
Mar 08 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
react实现antd线上主题动态切换功能
Aug 12 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取整数函数常用的四种方法小结
2012/07/05 PHP
PHP实现懒加载的方法
2015/03/07 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
python利用platform模块获取系统信息
2020/10/09 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
销售业务实习自我鉴定
2013/09/23 职场文书
自荐信封面
2013/12/04 职场文书
实验教师岗位职责
2014/02/13 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript