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 预解析
Oct 25 Javascript
YUI模块开发原理详解
Nov 18 Javascript
ES6所改良的javascript“缺陷”问题
Aug 23 Javascript
Node.js Sequelize如何实现数据库的读写分离
Oct 23 Javascript
Web制作验证码功能实例代码
Jun 19 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
JS实现判断有效的数独算法示例
Feb 25 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
Vue快速实现通用表单验证的方法
Feb 24 Javascript
node.js如何操作MySQL数据库
Oct 29 Javascript
JavaScript实例 ODO List分析
Jan 22 Javascript
vue 给数组添加新对象并赋值
Apr 20 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
十天学会php(3)
2006/10/09 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php实现删除空目录的方法
2015/03/16 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
高中地理教学反思
2014/01/29 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
创业计划书详解
2019/07/19 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL