`
zxl10059
  • 浏览: 57847 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

javascript for/in

阅读更多
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迭代的
分享到:
评论
1 楼 courage207 2011-09-27  
帮你点点广告

相关推荐

    javascript中for/in循环及使用技巧

    其中,“for/in循环”是JavaScript中一个非常有用的循环结构,主要用于遍历对象的可枚举属性,也可以用于数组。然而,在使用for/in循环时,有一些细节和技巧需要了解和掌握,以确保代码的正确性和效率。本篇文章将...

    JavaScript中的for/in循环的例子

    可以很容易理解javascript的for in循环的使用

    JavaScript中“过于”犀利地for/in循环使用示例

    在JavaScript编程语言中,`for/in`循环是一种特殊类型的循环,用于遍历对象的属性,而不仅仅是数组的索引。这个循环结构对于处理对象的属性非常有用,但如果不小心使用,可能会导致一些意外的结果,就像在提供的示例...

    Professional JavaScript for Web Developers英文版

    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

    PHP, MySQL & JavaScript All-in-One For Dummies 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

    JavaScript Functional Programming for JavaScript Developers (PDF, EPUB, MOBI)

    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 .pdf

    《JavaScript for Data Science》是一本关于如何使用JavaScript进行数据科学工作的专业书籍。该书属于Chapman & Hall/CRC数据科学系列,这一系列反映了数据科学领域的跨学科特性,汇集了来自统计学、计算机科学、...

    [JavaScript进阶]Professional JavaScript for Web Developers(3rd)

    Zakas所著的JavaScript领域的专业书籍,是《Professional JavaScript for Web Developers》第三版的中文翻译版。这本书旨在帮助读者深入理解JavaScript编程语言,从基础到高级特性,再到最佳实践,涵盖了JavaScript...

    Functional.Programming.in.JavaScript.1784398225

    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 ...

    浅谈javascript中for in 和 for each in的区别

     for in是javascript 1.0 中发布的。  for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分。  这将意味着存在各种浏览器的兼容性问题。for each in,对很多浏览器都不...

    JavaScript中for-in遍历方式示例介绍

    在JavaScript编程语言中,`for-in`循环是一种用于遍历对象属性或数组元素的迭代机制。与传统的`for`循环不同,`for-in`循环不适用于数字索引的连续遍历,而是主要用于处理对象的键值对。接下来,我们将详细讨论`for-...

    forin 变量查看

    http://code.google.com/p/forin/downloads/list http://code.google.com/p/forin/downloads/list 使用: 在head 标签内直接以&lt;script type="text/javascript" src="xxxx.js"&gt;&lt;/script&gt;的方式引用即可,之后页面...

    [Wrox]Professiona JavaScript for Web Developers.pdf

    - **流程控制结构**:包括条件语句(if...else)、循环语句(for、while)等,以及它们在实际编程中的应用。 - **函数**:解释函数的概念、作用域规则、闭包等,以及如何编写可重用的函数。 ##### 2. 高级...

Global site tag (gtag.js) - Google Analytics