如图:
人生最曼妙的风景,竟是内心的淡定与从容!
for...in 会遍历对象自身和其原型链上所有可枚举的成员(属性和方法)。
forEach的说明如下:
The forEach() method executes a provided function once per array element.
forEach仅遍历数组元素,即那些可以通过索引访问到的元素。
另外可以通过break来终止for...in,但没有办法终止forEach。
补充下:
要让Array.prototype.forEach在object上调用,需要该对象具有length属性,于是forEach会执行类似的行为:(参考ES5 Spec)
var i = 0; while(i++ < length) { if(obj.[[hasProperty]](i.toString())) callback.call(...) }
所以Array.prototype.forEach可以应用在Argument对象或者是HTMLCollection对象上.
for in 会遍历自身及其原型链上的所有方法。
有个东西你得知道,叫做hasOwnProperty,它可以将不是自己的变量或函数过滤掉
最后,建议不要使用for in , 第一是效率很低,第二是如果自己不注意,容易遍历出自己想不到的东西。
js没有foreach这个方法,for就带foreach的功能
forEach = for for != for in
so forEach != for in
for...in 会遍历对象自身和其原型链上所有可枚举的成员(属性和方法)。
forEach的说明如下:
forEach仅遍历数组元素,即那些可以通过索引访问到的元素。
另外可以通过break来终止for...in,但没有办法终止forEach。
补充下:
要让Array.prototype.forEach在object上调用,需要该对象具有length属性,于是forEach会执行类似的行为:(参考ES5 Spec)
所以Array.prototype.forEach可以应用在Argument对象或者是HTMLCollection对象上.
for in 会遍历自身及其原型链上的所有方法。
有个东西你得知道,叫做hasOwnProperty,它可以将不是自己的变量或函数过滤掉
最后,建议不要使用for in , 第一是效率很低,第二是如果自己不注意,容易遍历出自己想不到的东西。
js没有foreach这个方法,for就带foreach的功能
forEach = for
for != for in
so
forEach != for in