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 相关文章推荐
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
May 24 Javascript
Bootstrap布局方式详解
May 27 Javascript
AngularJS bootstrap启动详解及实例代码
Sep 14 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
Dec 14 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
jQuery UI Grid 模态框中的表格实例代码
Apr 01 jQuery
JS请求servlet功能示例
Jun 01 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
OpenLayers实现图层切换控件
Sep 25 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获取汉字的拼音(全部与首字母)
2013/06/27 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
九步学会Python装饰器
2015/05/09 Python
Python入门学习指南分享
2018/04/11 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
python 修改本地网络配置的方法
2019/08/14 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
Python-openCV开运算实例
2020/07/05 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
双方协议书
2014/04/22 职场文书
期末评语大全
2014/05/04 职场文书
核心价值观演讲稿
2014/05/13 职场文书
高三励志标语
2014/06/05 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
golang中的空slice案例
2021/04/27 Golang
如何判断pytorch是否支持GPU加速
2021/06/01 Python