for(variable in object)
statement
variable 是声明一个变量的var语句,数组的一个元素或者是对象的一个属性
在循环体内部,对象的一个属性名会被作为字符串赋给变量variable。
注意:对象的有些属性以相同的方式标记成了只读的,永久的(不可删除的)或者不可列举的,这些属性使用for/in循环不能枚举出来。虽然所有的用户定义的属性都可以枚举,但是许多内部属性,包括所有的内部方法都是不可枚举的。另外对象可以继承其他对象的属性,那些已继承的用户定义的属性可以使用for/in 循环枚举出来。
for(var i=0;i<len;i++)这样的用法一般都可以用for in 来替代。
例如:
复制代码 代码如下:
var a = ["a","b","c"];
for(var el in a){
alert(a[el]);
}
这个就是穷举出a中的所有元素,,当然上面这个例子是可以用
复制代码 代码如下:
for(var i=0,len=a.length;i<len;i++){
alert(a[i]);
}
这种方式进行循环列出的,不过有时候这种方式就不一定奏效了。
例如:
复制代码 代码如下:
var a = {"first":1,"second":2,"third":3};
这个时候就只能用for in来穷举了。
一个对象是否可以进行for in穷举,我们可以通过propertyIsEnumerable属性来判断,说明如下:
object.propertyIsEnumerable(propname)是否可以通过for/in循环看到属性
propname 一个字符串,包含object属性的名称
如果object具有名为propname的非继承属性,而且该属性是可枚举的(即用for/in循环可以枚举它),则返回true
描述:
用for/in语句可以遍历一个对象"可枚举"的属性,但并非一个对象的所有属性都是可枚举的,通过JavaScript代码添加到对象的属性是可枚举的,而内部对象的预定义属性(如方法)通常是不可枚举的.
propertyIsEnumerable()方法不检测原型链,这意味它只适用于对象的局部属性,不能检测继承属性的可枚举性
复制代码 代码如下:
var o=new Object();
o.x=3.14;
o.propertyIsEnumerable("x");//true
o.propertyIsEnumerable("y");//false have not the property
o.propertyIsEnumerable("toString");//false inherited
Object.prototype.propertyIsEnumerable("toString");//false nonenumerable
分享到:
相关推荐
js 中 for in 语句的用法讲解 js 中 for in 语句是一种遍历对象属性的语句,它可以遍历对象的可枚举属性。for in 语句的基本语法为:for (variable in object) statement,其中 variable 是声明的一个变量,object ...
可以很容易理解javascript的for in循环的使用
本篇文章将详细介绍JavaScript中for/in循环的基本语法、使用场景以及一些实用技巧。 首先,我们需要理解for/in循环的基本语法。for/in循环的语法结构如下: ```javascript for (variable in object) statement; `...
在JavaScript中,`for...in`循环是一种遍历对象属性的迭代语句,它主要用于枚举对象的所有可枚举属性,包括从原型链继承而来的属性。以下是对`for...in`循环的详细解释和使用示例。 首先,让我们看一个简单的`for.....
总之,虽然`for...in`循环在JavaScript中提供了一种遍历对象属性的便捷方式,但其存在的问题和缺陷使得在编写跨浏览器、高性能或者考虑内存占用的应用时,需要谨慎使用,并配合其他方法进行优化和校验。
在JavaScript中,有三种主要的循环方法:`forEach`、`for-in`和`for-of`,每种都有其特定的用途和特点。 `forEach`方法是ES5引入的一个数组方法,简化了对数组元素的遍历。例如: ```javascript myArray.forEach...
例如,如果给Object.prototype添加了clone方法,那么使用for in循环时,这个方法会出现在所有对象的属性遍历结果中。这可能导致一些不可预见的问题,尤其是在开发大型应用程序或库时,扩展内置原型(像Prototype.js...
这是因为,JavaScript 的数组是以字符串为键的关联数组,而对象属性名(索引)本身在 JavaScript 中也是字符串类型,因此当使用“for...in”来遍历数组时,遍历出来的将不仅仅只是数值类型的索引,还可能包括一些非...
} 这个就是穷举出a中的所有元素,当然上面这个例子是可以用 代码如下: for(var i=0,len=a.length;i<len;i++){ alert(a[i]); } 这种方式进行循环列出的,不过有时候这种方式就不一定奏效了。 例如: 代码...
- 不可以在`forEach`循环中使用`break`或`return`来提前终止循环或返回函数结果。 - 回调函数提供了三个参数:当前元素、当前索引和数组本身。 #### 三、for...in循环 `for...in`循环用于遍历对象的属性。 **语法...
PHP, MySQL & JavaScript All-in-One For Dummies 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
在代码中同样可以使用 forin(obj) 来查看变量,但有一个限制是 只能在 加载 body 标签之中或之后使用 forin 函数 属性: forin.useSort:Boolean 是否对结果排序,默认为true,如果不想对查看结果排序则在输入框...
for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分。 这将意味着存在各种浏览器的兼容性问题。for each in,对很多浏览器都不支持的。例如是不支持IE6,IE7,IE8等...
总之,`for...in`是JavaScript中遍历对象属性的重要工具,但在实际应用中应谨慎使用,尤其是在需要精确控制遍历顺序或避免处理继承属性的情况下。理解其工作原理和潜在问题,可以帮助开发者更有效地利用这一语法特性...
在JavaScript编程中,`for...in`循环和`hasOwnProperty`方法是两个非常重要的概念,它们主要用于遍历和检查对象的属性。`for...in`循环遍历的是对象及其原型链上的可枚举属性,而`hasOwnProperty`方法则用于确定对象...
注意:对象的有些属性以相同的方式标记成了只读的,永久的(不可删除的)或者不可列举的,这些属性使用for/in循环不能枚举出来。虽然所有的用户定义的属性都可以枚举,但是许多内部属性,包括所有的内部方法都是不可...
在Vue.js框架中,`v-for`指令是一个非常重要的特性,用于遍历数组或对象,渲染列表或重复的模板。当我们需要在`v-for`循环中跟踪每个项目的唯一标识或执行特定操作时,可以利用其提供的索引`index`值。下面我们将...
JavaScript For…In 声明 For…In 声明用于对数组或者对象的属性进行循环操作。 for … in循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。 语法: for (变量 in 对象) { 在此执行...
在实际开发中,使用"in"关键字可以方便地进行各种属性存在性的检测,但在使用时也需要注意其在不同场景下的行为特点,特别是for-in循环遍历对象属性时,和使用delete操作符删除属性后的行为。正确地理解和运用关键字...