for… in
用来遍历对象的可枚举属性列表(包括[[protrotype]]链),遍历得到的是所有可枚举属性,需要自己手动获取属性值。
forEach() 、map()
forEach()方法不会返回执行结果,而是undefined。也就是说,**forEach()会修改原来的数组。而map()方法会得到一个新的数组并返回。**遍历得到的是数组中的数值。
every() some()
访问数组
eyery()会一直执行到回调函数返回false;
some()会一直运行到回调函数返回true。
for…of
它会向被访问对象请求一个迭代器对象,然后通过调用迭代器对象next()方法来遍历所有返回值,数组有内置的迭代器。
可以通过Object.defineProperty()方法为对象定义内置的迭代器。