三目运算符(通过三元运算符,进一步了解返回值与赋值的顺序)

三目运算符(通过三元运算符,进一步了解返回值与赋值的顺序)

最近刚入门前端的朋友问了我这样一个问题,挺有趣,和刚接触JS的朋友分享一下,希望能有帮助:

var a = 1;
var b = a -= 0 ? a += 1 : a += 2;
console.log(b);
应该有不少新朋友认为b的值为什么不是0? a += 2 返回值是3,a-=3,不就是3 -= 3,不就是等于0, b = 0了吗?

欧,那一定是你对于返回值与赋值的顺序没有了解清楚: 先返回值然后再赋值!
比如我在这里:
var a;
var b;
b = a = 8;那我们这行的执行顺序一定是先将a = 8 的值返回给b,然后再对a赋值!
理解了上面这段,你再看一下刚开始的三目运算是不是就不认为结果还是0了?

来我们看一下:

首先0,肯定会执行 a += 2;这个我就不多赘述了.
然后我们将 a += 2的值返回给了前面的0(在这一步a = 3;但是a的值并没有赋给前面的a,所以在a -= 中的a还是1),
这样b的值为什么是-2,就理解了吧( b = 1-3;) 一直到这一步结束,才开始进行赋值!
这时a才会被赋值. 在这个运算中a被赋值两次,一次是3(a += 2 的值),一次是-2(a -= 3的值),这时a会被后运算的赋值,即最终a = -2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值