js中的自增和自减

我们难免会遇到要在js中拼串的同时对某变量进行自增或自减并作为参数拼接去的操作,所以在这里简单的讨论一下在这种场景下的变量自增和自减。
####完整测试代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
</body>
<script type="text/javascript" src="jquery-3.0.0.min.js"></script>
<script type="text/javascript">
    $(function () {
        var i = 1;
        $("body").append("<h3>a、i=1;i++=" + i++ + ";</h3>");
        i = 1;
        $("body").append("<h3>b、i=1;++i=" + ++i + ";</h3>");
        i = 1;
        $("body").append("<h3>c、i=1;i--=" + i-- + ";</h3>");
        i = 1;
        $("body").append("<h3>d、i=1;--i=" + --i + ";</h3>");
        i = 1;
        $("body").append("<h3>e、i=1;i+1=" + i + 1 + ";</h3>");
        i = 1;
        $("body").append("<h3>f、i=1;(i+1)=" + (i + 1) + ";</h3>");
    });
</script>
</html>

####测试代码运行结果

a、i=1;i++=1;
b、i=1;++i=2;
c、i=1;i--=1;
d、i=1;--i=0;
e、i=1;i+1=11;
f、i=1;(i+1)=2;

####总结

  以前我一直使用的是(i+1)/(i-1)来完成此类操作,鉴于此方法是代码相对最多、最笨和最不狂拽酷炫叼炸天的,所以一直想换一种better的方法,从上面的测试结果来看++i/–i无疑是符合我的需求的,而i++和i–却差了那么一丢丢,因为这里也涉及到i++和++i的一些区别:

  • i++:先赋值再自加,先在i所在的表达式中使用i的当前值,后让i加1;
  • ++i:先自加再赋值;让i先加1,然后在i所在的表达式中使用i的新值;

  从上面不难看出这些自增减表达式(i++、++i、i-–、–-i)含义蹊跷,非常容易弄错。它们把读和写这两种完全不同的操作,混淆缠绕在一起,把语义搞得乌七八糟,而含有它们的表达式,结果却可能取决于求值顺序。但是需要指出的是自增减表达式在两种情况下还是可以安全的使用的。一种是在for循环的update部分,比如for(int i = 0; i < 5; i++)。另一种情况是写成单独的一行,比如i++;。这两种情况是完全没有歧义的,所以你可以放心的使用,而你需要避免的是其它的情况,比如用在复杂的表达式里面。

  基于以上的各种原因,我还是选择(i+1)/(i-1)这种方式来实现功能,可能它是最笨,但同时它也是最聪明的,every body都能明白!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值