两个简单的对数组进行循环,然后打印数组的值,对于arr1的数组,可以正常打印出值为1,2, 3,4,5。
但是很难想象,对于arr2循环体的内部,增加了一步window.onresize之后,结果就完全不是我们想象的这样了。
打印2次undefined。
如果单纯打印arr2,则可正常输出数组的值。那么问题必然出在i。
直接console.log(i), 结果为。
那么通过函数自执行,将i当参数传入呢?
就能正常输出数组的值了。
事实上就是由于当我们调整浏览器窗体大小的时候,该循环体已经执行完毕,所以i已经为5了,此时打印i即为5,打印arr2[5]则为undefined。
执行两次,完全是浏览器自身问题。