【JS】【confusion】数组循环push,变量声明位置不同结果不同

众所周知,JS变量的作用域依据function来划分,且在执行前会对所有声明进行解析,但今天遇到个情况百思不得其解,记录如下:

概述:双层循环,将[0,0],[0,1],[1,0],[1,1]依次插入数组array中,a变量用于存储当前待插入的值。

1、a变量声明于for循环时,最终获得的数组结果并非期望

	

chrome控制台结果:

【JS】【confusion】数组循环push,变量声明位置不同结果不同_第1张图片

最终array数组中存储的值为[1,1],[1,1],[1,1],[1,1],并非预期

2、a变量声明于for循环时,最终获得的数组结果并非期望

	

chrome控制台结果:

【JS】【confusion】数组循环push,变量声明位置不同结果不同_第2张图片

最终array数组中存储的值为[0,0],[0,1],[1,0],[1,1],虽然预期,但为何与前者不同,尚有待研究。

你可能感兴趣的:(JavaScript,confusion)