1.1. for/in
for关键字在javascript中有两种用法,在for循环里,你已经看到了他是如何使用的,for也可以使用在for/in语句里,下面的语句稍微不同于循环,
for (variable in object)
statement
variable可以是以下中的任何一个,命名变量、var关键字声明的变量、数组的一个元素或者对象的一个属性(即其必须是一个适当的、可赋值的左值),object是命名对象或者是可返回对象的表达式,通常,statement是声明语句或构成循环体的语句块。
你可以使用while或者for循环简单的通过递增索引的方式迭代任意数组元素。而for/in循环提供了一个迭代对象属性的方法,object的每个属性for/in循环体都执行一次迭代,在循环体执行前,对象的属性名字作为string类型付给了变量variable。在循环体内,可以使用这个变量通过[]操作符访问对象的属性值,例如,下面的for/in循环打印了一个对象每一个属性的名字和属性值
for (var prop in my_object) {
document.write("name: " + prop + "; value: " + my_object[prop], "<br>");
}
注意:在for/in中的variable变量可以是任意表达式,只要执行结果是可赋值的左值即可.这个表达式循环时每次都会执行,意思是说:每次执行的都不同。例如,编写如下代码拷贝对象的所有属性到数组里
var o = {x:1, y:2, z:3};
var a = new Array( );
var i = 0;
for(a[i++] in o) /* empty loop body */;
其实,javascript数组也只不过是一个特殊的对象而已,因此,for/in循环迭代数组索引和循环迭代对象属性是一样的,例如,上面代码块再加上这句迭代输出数组属性值为0,1,2
for(i in a) alert(i);
for/in循环不能指定赋值给variable变量的对象属性的顺序,无法指定哪一个将在前面,在不同的javascript版本中,这个行为也是不同的。如果for/in循环体内删除了一个尚未迭代的属性那么这个属性不会被迭代,如果在循环体内添加了属性,那么这些属性是否被迭代要视具体实现了
for/in循环实际上不是万能的,它并不能迭代所有对象的所有属性,有些特殊情况下,例如一些对象的属性标示为只读或者不可变的,标示为不可迭代的。这些属性不能被for/in迭代。所有用户自定义属性是可以迭代的,许多内建属性包括所有内建方法是不可以被迭代的。对象是可以继承其他对象的属性的,继承而来的属性是用户自定义属性,是可以用for/in迭代的
分享到:
相关推荐
其中,“for/in循环”是JavaScript中一个非常有用的循环结构,主要用于遍历对象的可枚举属性,也可以用于数组。然而,在使用for/in循环时,有一些细节和技巧需要了解和掌握,以确保代码的正确性和效率。本篇文章将...
可以很容易理解javascript的for in循环的使用
在JavaScript编程语言中,`for/in`循环是一种特殊类型的循环,用于遍历对象的属性,而不仅仅是数组的索引。这个循环结构对于处理对象的属性非常有用,但如果不小心使用,可能会导致一些意外的结果,就像在提供的示例...
partial function application, and dynamic functionsoffline detection and storing data on the client machinetechniques for JavaScript in an enterprise environment for better maintainability ...
PHP, MySQL & JavaScript All-in-One For Dummies 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
If you are a JavaScript developer interested in learning functional programming, looking for the quantum leap toward mastering the JavaScript language, or just want to become a better programmer in ...
《JavaScript for Data Science》是一本关于如何使用JavaScript进行数据科学工作的专业书籍。该书属于Chapman & Hall/CRC数据科学系列,这一系列反映了数据科学领域的跨学科特性,汇集了来自统计学、计算机科学、...
Zakas所著的JavaScript领域的专业书籍,是《Professional JavaScript for Web Developers》第三版的中文翻译版。这本书旨在帮助读者深入理解JavaScript编程语言,从基础到高级特性,再到最佳实践,涵盖了JavaScript...
If you are a JavaScript developer interested in learning functional programming, looking for the quantum leap towards mastering the JavaScript language, or just want to become a better programmer in ...
for in是javascript 1.0 中发布的。 for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分。 这将意味着存在各种浏览器的兼容性问题。for each in,对很多浏览器都不...
在JavaScript编程语言中,`for-in`循环是一种用于遍历对象属性或数组元素的迭代机制。与传统的`for`循环不同,`for-in`循环不适用于数字索引的连续遍历,而是主要用于处理对象的键值对。接下来,我们将详细讨论`for-...
http://code.google.com/p/forin/downloads/list http://code.google.com/p/forin/downloads/list 使用: 在head 标签内直接以<script type="text/javascript" src="xxxx.js"></script>的方式引用即可,之后页面...
- **流程控制结构**:包括条件语句(if...else)、循环语句(for、while)等,以及它们在实际编程中的应用。 - **函数**:解释函数的概念、作用域规则、闭包等,以及如何编写可重用的函数。 ##### 2. 高级...