Art*_*pek 2 javascript for-loop
可能重复:
for(var in aArray)VS for(i = 0; i <aArray.length; i ++)
假设这些总是会做同样的事情,并且我应该总是使用后者,这是安全的吗?
for (var i = 0; i < a.length; i++){
for (var i in a){
不,它不安全,因为它们不是一回事.
第一个迭代数字索引,直到.length以数字顺序存储在属性中的任何值.
第二个枚举对象的所有可枚举属性,包括原型属性,并不保证任何类型的顺序.
拿一个数组:
var arr = ['a','b','c'];
Run Code Online (Sandbox Code Playgroud)
现在添加一些东西到prototype它的构造函数的对象:
Array.prototype.sayHello = function() { alert('hi'); };
Run Code Online (Sandbox Code Playgroud)
如果你使用一个for-in语句,你最终会击中sayHello函数,而不仅仅是数字索引.
如果你正在处理除了索引之外没有可枚举属性的对象,并且你不关心顺序,那么我猜它真的没关系,但是正确的形式仍然是使用for语句.
| 归档时间: |
|
| 查看次数: |
8495 次 |
| 最近记录: |