Javascript在for循环外定义变量的区别,神奇的Javascript

先看两段代码,我们通过for循环定义一个数组arr1,然后要把arr1依次放入数组arr2里面。

开始,我们定一个这两个数组变量,然后通过for循环为arr1赋值(因为是示例,我们只在里面添加一个元素arr1[0])。

上面的代码我们把arr1的定义放在了for循环外面,下面这段代码我们在每次循环开始的时候重新定义arr1:

在第一个里面,我们push arr1到arr2之后里面的变量arr1[0]值是i,还会跟随for循环变化。

在第二个里面,arr1被重新定义,之前的arr1[0]就被转换成常量了?