Skip to content

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

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

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

[javascript]

var arr2 = []; //存放_arr的二维数组
var arr1 = []; //一维数组
for(i=0;i<3;i++){
arr1[0]=i;
arr2.push(arr1);
}
console.log(arr2 + “”); //[[2],[2],[2]]

[/javascript]

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

[javascript]

var arr2 = []; //存放_arr的二维数组
for(i=0;i<3;i++){
var arr1 = []; //一维数组
arr1[0]=i;
arr2.push(arr1);
}
console.log(arr2 + “”); //[[0],[1],[2]]

[/javascript]

我们发现,两个代码执行结果是不一样的,第一个输出的arr2=[[2],[2],[2]],第二个输出arr2=[[0],[1],[2]]。

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

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

神奇。

插播一个征婚广告~~

也是受朋友之托。

>_<

女,运营妹,23岁,未婚,身高167cm,体重48KG,山东青岛。

目前在阿里巴巴工作,负责支付宝相关业务,工号 519720401 支付宝搜索工号可见照片。

漂亮大方,爱好读书、健身、游泳、吃鸡。

青岛有房一套,有车。

父母退休,家庭不拜金、人务实,一直没有合适的男朋友。

她本人要求不高,只要对她真心好就行。

 

您的赞助将会鼓励作者技术文章创作以及支持本站运维。

发表评论

Your email is never published nor shared. Required fields are marked *


TOP