前置后置运算法则
++都是加1,但是前后置的作用不同
前置++:先运算后输出
后置++:先输出后运算
–都是减1,但是前后置作用不同
前置–:先运算后输出
后置–:先输出后运算
先乘除后加减,有小括号先算小括号里面的
前置++
前置++先运算后输出
var a=10; console.log(++a); //1+10 //打印11
这里为什么要打印11呢?
根据前置运算法则,先运算后输出也就是相当于这个10在打印前先运算了一下,也就是10+1,所以等于11
后置++
var a=10; console.log(a++); //打印10 //10+1
这里为什么打印10呢?
根据后置运算法则,先输出后运算,所以这里是先打印了自身也就是10,然后在加1;
后置++进阶
var a=10; sonsole.log(a++); //打印10 //10+1 var b=a; //由于a是10,后置++,在输出之后加1 // b=11; console.log(b) //11
为什么会打印11?
根据后置运算法则,先输出后运算,由于在打印的时候打印了10,这是输出了,那么到变量b时就是11.
细节:其实无论是不是打印,重点在于a++;
前置–
前置–先运算后输出
var a=10; console.log(--a); //10-1 //打印9
这里为什么要打印9呢?
根据前置运算法则,先运算后输出也就是相当于这个10在打印前先运算了一下,也就是10-1,所以等于9
后置–
var a=10; console.log(a--); //打印10 //10-1
这里为什么打印10呢?
根据后置运算法则,先输出后运算,所以这里是先打印了自身也就是10,然后在减1;
后置–进阶
var a=10; sonsole.log(a--); //打印10 //10-1 var b=a; //由于a是10,后置--,在输出之后减1 // b=9; console.log(b) //9
为什么会打印9?
根据后置运算法则,先输出后运算,由于在打印的时候打印了10,这是输出了,那么到变量b时就是9.
细节:其实无论是不是打印,重点在于a-- ;
扩展题
第一道
var num1=5; var num2=4; console.log(++num2+num1*2+num2++);
第二道
var num1=5; var num2=4; console.log(++num2+num1*2+ ++num2+2);
第三道
var num1=5; var num2=4; console.log(++num2+num1*2+num2*2-2);
第四道
var num1=5; var num2=4; console.log(num2++ +num1*2+num2*2-2);
答案
第一道
var num1=5; var num2=4; console.log(++num2+num1*2+num2++); //5 +10+5++ //19
第二道
var num1=5; var num2=4; console.log(++num2+num1*2+ ++num2+2); //5+10+6+2 //23
第三道
var num1=5; var num2=4; console.log(++num2+num1*2+num2*2-2); //5 +10+10-2 //23
第四道
var num1=5; var num2=4; console.log(num2++ +num1*2+num2*2-2); //4++ + 10 + 5*2 -2 //22