文章详情页
javascript - 一个赋值运算的问题
浏览:247日期:2023-05-27 14:06:34
问题描述
var a=0;b=(a=3)+(a=4);alert(a);alert(b);结果a=4,b=7
想问一下,a为什么是4?赋值运算是从右向左的吗?
问题解答
回答1:运算顺序:
var a = 0; // a 0b = (a = 3) + (a = 4);// a = 3 ----> a为3,整个赋值语句返回3// a = 4 ----> a为4,整个赋值语句返回4// 由于返回值的内存和赋值操作用到的a的内存不同,所以b的运算所用的值,只和返回值有关,不受a的值变化的影响,因此,b = 3 + 4 = 7// 所以,最终a为4,b为7回答2:
赋值运算是自右向左结合的。所以首先是将(a=3)+(a=4)赋值给b。然而(a=3)+(a=4)是从左到右的顺序执行的。所以显示3赋值给a,然后4赋值给a。所以a最终为4,b最终为7。
回答3:先执行a=3,接着执行a=4, 所以最后a是4
回答4:a被4赋值了
回答5:b=(a=3)+(a=4)这行代码时从左向右执行的执行a=3时,此时将3赋值给a 当a=4时,将4赋值给a,最后a的值就是4了.
标签:
JavaScript
上一条:javascript - 页面引入的所有的js文件,每个js文件都有window.onload偶尔会某个js文件没有执行下一条:javascript - vue-cli热更新的问题【webpack配置】
相关文章:
1. node.js - 我是一个做前端的,求教如何学习vue,node等js引擎?2. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?3. docker api 开发的端口怎么获取?4. macos - mac下docker如何设置代理5. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?6. 如何解决docker宿主机无法访问容器中的服务?7. 老师,flex-shrink: 1; 按视频操作,不会自动缩放8. java - 为什么第一个线程已经释放了锁,第二个线程却不行?9. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~10. PHP中的$this代表当前的类还是方法?
排行榜

网公网安备