zoukankan      html  css  js  c++  java
  • JavaScript运算符:递增和递减(++i,--i 和 i++,i-- 的区别)

    递增和递减操作符直接借鉴自C,而且各有两个版本:前置型 (递增 ++i ,递减 --i )和 后置型 (递增 i++ ,递减 i-- )。书本上对两者的定义是:前置型应该位于要操作的变量之前,而后置型则应该位于要操作的变量之后。what?怎么那么难理解,换一种通俗易懂的语言去描述应该是咋样的......,结合提供代码,一顿白眼.....

    前置型 (递增 ++i ,递减 --i ):  不就是先自身计算,再赋值给变量(先计算自己身上增加,减少了多少钱,再把它存到自己的银行卡里或者还给债主);
    后置型 (递增 i++ ,递减 i-- ):不就是先将自身的值赋值给变量,然后再自身计算(先把自己原本身上的钱存到自己的银行卡里或者还给债主,然后在计算在原来基础上自己增加,减少了多少钱);

    懂了没?假设还不懂,那现在开始给你看看两种方式下,你的钱是怎么流通的哈:

     一、前置型(递增++i,递减--i)

    假设你有100块(变量i=100) ,那么前置递增为 ++i 。
    var i = 100;
    alert(i);         => 100
    ++i;      => 101   先计算自己身上增加了多少钱
    alert(i);         => 101       再把它存到自己的银行卡里或者还给债主

    也相当于如下的操作效果:

    var i = 100;
    i=i+1;   => i=100+1=101;

    执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的。(在计算机科学领域中,这种情况通常被称作副效应)
    ,看下面的例子:

    var age = 29;
    var anotherAge = --age + 2;
    console.log(age)          // 28 (age = age - 1)
    console.log(anotherAge);       // 30 (anotherAge = age - 1 + 2)

    这个例子中变量 anotherAge的初始值等于变量 age 的值前置递减( age = age - 1 )之后加上 2 。就是age自身先执行减法操作(age=age-1), age 的值变成了28,然后再加上 2,值就是30。

    另外在JavaScript运算符中,前置递增( ++i )和递减( --i )与执行语句的优先级相同,因此整个语句会 从左至右被求值 。再来看一个示例:

    var num1=2;

    var num2=20;

    var num3=++num1 + num2;

    var num4=num1+num2;

    alert(num1);                   // 3

    alert(num3);       // 23  

    alert(num4);                 //  23

    在这里,num3等于23,是因为num1先自身执行了加法操作才与num2相加。而变量num4也等于23,是因为相应的加法操作也使用了num1自身执行了加法操作后的值。

    二、后置型(递增i++,递减i--)

      假设你有100块(变量i=100) ,那么前置递增为 ++i 。
      var i = 100;
      alert(i);  => 100         
      i++;    => 100     先把自己原本身上的钱存到自己的银行卡里或者还给债主
      alert(i);  => 101            然后在计算在原来基础上自己增加,减少后一共还有多少钱

    把递增操作符放在变量后面并不会改变语句的结果,因为递增是这条语句的唯一操作。但是当语句中还包含其他操作时,区别就会不一样了。看下面的例子:
    var num1=2;
    var num2=20;
    var num3=num1++  +  num2;
    var num4=num1+num2;
    alert(num1);             =>  3  
    alert(num3);             =>  22 // var i; i=num1=2; num1=num+1=3 ; num3=i + num2;
    alert(num4);             =>  23 //  num1+num2;

    前置递增(递减)&&后置递增(递减)

    1.前置递增(++): 在变量的前面,先自身执行加法操作后在赋值(++i);

    2.后置递增(++): 在变量的后面,先赋值后在执行加法操作(i++);

    3.前置递减(--): 在变量的前面,先自身执行减法操作后在赋值(--i);

    4.后置递减(--): 在变量的前面,赋值后在执行减法操作(i--);


    总结,希望这篇文章对你理解递增和递减(++i,--i 和 i++,i-- 的区别)有帮助,分享技术,分享快乐!

  • 相关阅读:
    IO模型
    函数第一类对象,闭包,迭代器
    admin里面的注册模型类的写法
    升级pip
    Windows部署superset操作手册
    Python命名空间和作用域窥探
    使用CSS3画出一个叮当猫
    D
    [java]说说 JRE , JDK , JVM 三者之间的区别与联系
    H~N皇后问题
  • 原文地址:https://www.cnblogs.com/babywin/p/6867377.html
Copyright © 2011-2022 走看看