猿问

num1++ % 4 + 6 * 2的运算结果不应该是13吗?

var num1 = 24; 
var myresult = num1++ % 4 + 6 * 2; 
console.log(myresult);
num1先求余数运算的结果是0,然后再自增1,就是1,再加12,结果应该是13啊?
为何实际结果是12呢?
num1%4的值是0,num1++%4的值不应该是1吗?要不然num1++有自增吗?

墨色风雨
浏览 557回答 1
1回答

陪伴而非守候

num1++是一个表达式,这个表达式的值是num1原来的值,所以这个表达式的值求余为0,于是num1++%4这个表达式的值就是0,0+6*2是12,所以这个算完后,myresult是12,num1是自增了1并且不是整个表达式算完才自增,num1++算完就自增了,只是num1++这个表达式的值还是原来的值,用js演示一下,如果是像有人说的全部算完才计算的,那么下面的应该输出 0和12,但实际是1和12        var num1=0;        function cheack(n){            console.log(n);            return 0;         }        console.log(num1++ % 4 +cheack(num1)+ 6 * 2);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答