在JavaScript中使用for...in为空数组赋值为什么不成功

JavaScript011

在JavaScript中使用for...in为空数组赋值为什么不成功,第1张

JS就这么规定的。主要是因为getElementsByTagName反回的是数组数组有length属性。但是在定义obj时候它并不知道自己是数组类型的(弱类型特点)所以这个时候你直接去obj.length你会发现他的返回值是“未定义”这时候就需要getElementsByTagName去告诉obj“你是个数组!!!”于是返回一个数组特有的属性length给obj.汗。这帮人小看楼主了。to2想到这点的应该不会不知道for(vari=0i<obj.lengthi++){怎么用吧。to1for(variinobj)这个东西应该是遍历obj中的[i],而不是单指属性吧。

这个问题很简单,楼主的写法可能自己看的都很模糊:

var ff= -1

if(item=="活塞"){

ff=33

}

document.write(ff+item)

这么写就可以很清晰的看出,if到 } 后就已经结束,

后面的document.write()跟这个if没有关系了,如果你再if的 } 之前加上document.write(ff+item)

那么打印出来的就是 33活塞,如果想要把下面的代码也用33赋值,那要把上面if的 } 放到整个switch的后面把下面的方法都要包含进来