在研究中,我试图找到确定对象是否具有值的最快方法,并且可以在对象上执行for。 参考:https://jsperf.com/jquery-each-vs-each-vs-for-loop/2
我曾经这样做,但在与同事讨论时,他正在使用.each,我们一起查看,发现两种方法都很慢,需要改进。
if(Object.keys(X).length > 0) {
// Execute For
}
以下是我所知道的:
obj instanceof Object
和
typeof(obj) == "object" and obj !== "null"
因为null是一个对象,两者都有它们的缺点,但也许还有另一种更优越的方法。
答案 0 :(得分:0)
可以对任何对象执行for
循环,因此此处无需检查。也许您需要考虑要迭代的对象上的哪些属性,但这取决于应用程序。
通常在迭代对象时,代码可能如下所示:
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
//do stuff here...
}
}
hasOwnProperty
检查确保您仅使用添加到对象本身而不是其原型的值。