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 09 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
javascript 基础篇2 数据类型,语句,函数
Mar 14 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
Nov 08 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
jQuery表格插件datatables用法详解
Nov 23 Javascript
JavaScript的instanceof运算符学习教程
Jun 08 Javascript
JS常见算法详解
Feb 28 Javascript
JS中的Replace()传入函数时的用法详解
Sep 11 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
了解javascript中变量及函数的提升
May 27 Javascript
js中Function引用类型常见有用的方法和属性详解
Dec 11 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中的extract的作用分析
2008/04/09 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
谷歌地图打不开的解决办法
2014/08/07 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
JS检测数组类型的方法小结
2017/03/14 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
Python 爬虫的原理
2020/07/30 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
材料加工硕士生求职信
2013/10/10 职场文书
毕业晚会主持词
2014/03/24 职场文书
融资租赁计划书
2014/04/29 职场文书
企业文明单位申报材料
2014/05/16 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers
Pygame如何使用精灵和碰撞检测
2021/11/17 Python