JavaScript中关键字 in 的使用方法详解

for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。

  对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加属性,这个属性也会被遍历出来,所以

  最好数组使用正常的for循环,对象使用for-in循环

  对于对象 ,迭代出来的是对象的属性

rush:js;">   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继承的属性

rush:js;"> 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 就无法判断了

对于一般的对象属性需要用字符串指定属性名称

如:

rush:js;"> var mycar = {make: "Honda",model: "Accord",year: 1998}; "make" in mycar // returns true "model" in mycar // returns true

如果你使用delete操作符删除一个属性,再次用in检查时,会返回false,如:

rush:js;"> var mycar = {make: "Honda",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.

rush:js;"> var mycar = {make: "Honda",year: 1998}; mycar.make = undefined; "make" in mycar; // returns true var trees = new Array("redwood","maple"); trees[3] = undefined; 3 in trees; // returns true

以上所述是小编给大家介绍的JavaScript中关键字 in 的使用方法详解。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...