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迭代的
分享到:
相关推荐
可以很容易理解javascript的for in循环的使用
如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的,本篇文章给大家介绍javascript中for/in循环及使用技巧 ,需要的朋友可以参考下
Java中的增强for循环很是好用,但是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删除 查看此书详细信息请在美国亚马逊官网搜索此书
JavaScript is the language of the browser. It’s also the language that allows you to build increasingly diverse types of client, server... Fluency in JavaScript is a must for every web developer today.
In the 2005 film adaptation of The ...Firebug for Firefox button in the top-right corner, as shown in Figure 2. Then follow the wizard, granting permission to install the add-on if prompted by Firefox.
techniques for JavaScript in an enterprise environment for better maintainability This book is aimed at three groups of readers: Experienced object-oriented programming developers looking to learn ...
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 ...
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,对很多浏览器都不...
Helps you grasp the technologies that power web applications Covers PHP version 7.2 Includes coverage of the latest updates in web development Perfect for developers to use to solve problems
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>的方式引用即可,之后页面...
JavaScript Intellisense for Ext 2.0.1 in Visual Studio 2008
主要介绍了Javascript中For In语句用法,实例分析了javascript使用For In语句遍历数组的技巧,需要的朋友可以参考下
for maintaining, modifying, and writing JavaScript code. If that describes you, this book will quickly and easily bring you up to speed. Whether you know a little JavaScript or you’ve never seen it, ...