var j=1;      j=(j++)+j+(j++)+(++j)+j;   答案等于13,就是不知道怎么算出来的,求告知

解决方案 »

  1.   

    (j++)  //先返回1,再让j增加1,j为2
    +
    j      //之前返回1 加 j 结果为3
    +
    (j++)  //先计算之前的结果3 加 j 结果为5 ,再让j增加1,j为3
    +
    (++j)  //先让j增加1,j为4  再计算之前的结果5 加 j 结果为9
    +
    j;     //之前的结果9 加 j 结果为13
      

  2.   

    考点:
    var a = i++;等价于var a  = i;  i = i + 1;
    i++是先输出i,再进行自增
    var a = ++i;等价于i = i + 1;  var a  = i; 
    ++i是先进行自增,再输出i
      

  3.   

    j++,直接就先运算出来吗
    若j为1,console.log(j++)输出的是1,因为j会先输出,然后再进行自增,
    如果再console.log(j)一下,就会发现j是2。
      

  4.   

    j++,直接就先运算出来吗
    若j为1,console.log(j++)输出的是1,因为j会先输出,然后再进行自增,
    如果再console.log(j)一下,就会发现j是2。
    那这种一行之内的直接增量了?
      

  5.   

    j++,直接就先运算出来吗
    若j为1,console.log(j++)输出的是1,因为j会先输出,然后再进行自增,
    如果再console.log(j)一下,就会发现j是2。
    那这种一行之内的直接增量了?
    i++ 是先返回i原来的值,再对i增加1
    ++i 是先对i增加1,再返回i改变后的值
      

  6.   

    j++,直接就先运算出来吗
    若j为1,console.log(j++)输出的是1,因为j会先输出,然后再进行自增,
    如果再console.log(j)一下,就会发现j是2。
    那这种一行之内的直接增量了?
    没错,从左至右计算。