JS中运算符i++与++i的详细分析

新手朋友容易混淆的概念,特提出自己的想法思路,仅供参考,错误之处,还望指出。

请看下面代码:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
        var a=10,b=20,c=30;
        ++a;
        a++;
        e=++a+(++b)+(c++)+a++;
        alert(e);
    </script>
</body>
</html>



解答此题首先弄明白: i++返回的是自增之前的值,++i返回的则是自增后的值。
如:
var i = 1;
var a = i++;  //a = 1;  此时i先将值1赋给a,然后自己+1,i=2;
var b = ++i;  //b = 3;此时i先自己+1为3.再给b赋值,b=3;
再看此题:那么++a意思为a=a+1 a为11,此时不涉及运算优先级的问题。
		a++意思为a=a+1       a为12  ,此时仍旧不涉及运算优先级的问题。
		当e=++a+(++b)+(c++)+a++;时,必须考虑运算级的问题。
		此时:++a a先自己+1  然后将值赋给结果:13      a=13
			++b  b先自己+1  然后将值赋给结果:21      b=21
			C++ 先将c值赋给结果:30     c自己+1      c=31
			a++ 先将a值13赋给结果:13   a自己+1       a=14
此时所有结果加起来:13+21+30+13=77

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值