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是无序”来解释。