关于javsacript中 for in遍历对象

来源:互联网 发布:java判断质数的方法 编辑:程序博客网 时间:2024/05/01 09:26

1、关于for in语法

for ...  in语法主要用于遍历数组中的元素,或者遍历对象中的元素。
当使用for ... in 遍历对象属性时,原型链上的所有属性都将被遍历。

2、关于Object属性名

通常讲,javascript标示符名称必须由字母,下划线(_)或dolor符号 ($)开始,其他字符可以时字母,数字,下划线或dolor,但标识符不能时javascript关键字。
对于对象属性名,我实验的结果是:
对象属性名可以是1:下划线开始的字符串;2:数组开始的字符串;3:汉字;4:以上标识符规定范围内的字符串。

3、关于for in的一个坑

一般而言,我们使用for ... in循环遍历数组时,比如

var arr = [1,2,3,4];for (var k in arr){    alert(arr[k])}

结果是依次弹出1、2、3、4。
同样,我们自然的认为for ... in遍历Object时也是按照属性出现的顺序来查找。就像下 main的代码:

var o = {    'first':'first',    'second':'second',    'third':'third'}for (var k in o){    alert(o[k])}

会依次弹出‘first’,‘second’,‘third’。
这当然没错,不过,再试试下面的代码:

var o = {    '01':'1',    '2':'2',    '今天':3}for (var k in o){    alert(o[k])}

结果怎样?2,1,3对不对?
这一次循环不是按照属性出现的瞬息来查找的。

这些代码在多种浏览器都出现一直都结果。我想大概时因为“Object是无序”来解释。
0 0