js定义变量并赋值,js连续赋值的执行顺序

js定义变量并赋值,js连续赋值的执行顺序,js中变量的连续赋值(实例讲解)

下面小编就给大家带来一个js中变量的连续赋值(举例说明)。我觉得边肖挺好的。我现在就分享给你,给你一个参考。来和边肖一起看看吧。

今天遇到一个连续赋值的经典案例,网友给出的答案也是五花八门,显得有些繁琐。我也来说说自己的看法。

下面就是这个经典案例:

var a={ n:1 };

var b=a;

a . x=a={ n:2 };

console . log(a);

console . log(b);

console . log(a . x);

console . log(b . x);

我们先来看普通的连续赋值,也就是变量赋值的类型是数据类型value。

var a=3;

var b=a=5;

console . log(a);

console . log(b);

一般来说,等号赋值的方向是从右到左的,所以上面的代码等价于下面的代码,所以我们将用下面的代码来解释上面的代码:

var a=3;//全局变量A被赋值为3

var a=5;//此时,A被重新分配给5

var b=a;//将A的值赋给全局变量b。

console . log(a);//a最终值是第二次赋值的值:5

console . log(b);//根据代码执行顺序,B的值也是:5

上面的小case是用来吸玉的。现在我们来分析一下这个经典案例:

var a={ n:1 };//a第一次赋值,是引用类型值。请记住,当一个变量被赋值为引用类型值时,当对象被变量改变时,对象本身也会改变。

var b=a;//b赋给A,所以B是对象{n:1}

a . x=a={ n:2 };

//这个赋值不同于前面的简单情况。a.x指的是在js的操作中给a .添加一个X属性,“”和“=”运算符同时出现,而“.”将首先执行操作。

//因此,赋值顺序已经更改。先赋值a.x,再赋值A。

//先执行一下就好了:a.x={n:2}。注意这里a没有变。你把a的x性质赋给{n:2},a还是{n:1}

//回到我代码的第一句,这个赋值行为改变了对象{n:1},也就是给它增加了一个名为x的属性。

//重新执行a={n:2},这意味着变量A不再是对象{n:1},而是被重新赋值为一个新的对象{ n:2 };

console . log(a);//自然这时A就是对象{n:2}

console . log(b);//a的二次赋值并没有影响到B,B仍然是对象{n:1},但是由于A在重新赋值之前给对象{n:1}添加了一个X属性,此时B已经有了X属性。

console . log(a . x);//{n:2}对象没有x属性,所以结果未定义。

console . log(b . x);//综上,这个结果是{n:2}

以上js中的变量连续赋值(例题讲解)就是边肖分享的全部内容。希望给大家一个参考,多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: