1.为什么用for in而不用for,for in的话还得用hasOwnProperty,这不是麻烦了? 用for in 有什么好处?
2.为什么 用 & 而不是用常用 && 操作符?
执行下面三段代码,便会明白一些区别
var array=['a']; Array.prototype.test=function(){}; array.loady = 'ask'; /*标准的for循环*/ for(var i=0;i<array.length;i++){ alert(i); } ////// var array=['a']; Array.prototype.test=function(){}; array.loady = 'ask'; for(var i in array){ alert(i); } /////// var array=['a']; Array.prototype.test=function(){}; array.loady = 'ask'; for(var i in array){ if(!array.hasOwnProperty(i)){ continue; } alert(i); }
参照javascript权威指南的:使用for、in循环可以在循环体遍历对象中所有的可枚举的属性,也就是包括自有属性和继承属性,把属性名称赋值给循环变量;而hasOwnProperty方法可以用来检测给定的名字是否是对象的自有属性,通过以上两步筛选,可以筛选出对象具有的自有属性,也就是期望的格式object:{src:xxx}.我是新手,以上是我自己推断的,如有错误,见谅