鍍金池/ 問(wèn)答/HTML5  HTML/ js里1*2++這樣寫(xiě)為什么會(huì)報(bào)錯(cuò)?不是一元運(yùn)算符的優(yōu)先級(jí)高于乘除嗎?

js里1*2++這樣寫(xiě)為什么會(huì)報(bào)錯(cuò)?不是一元運(yùn)算符的優(yōu)先級(jí)高于乘除嗎?

1*2++為什么不是3而是報(bào)錯(cuò)呢

回答
編輯回答
孤慣

++、--是右結(jié)合的操作符(優(yōu)先級(jí)最高的幾個(gè)都是右結(jié)合),而且比加減乘除優(yōu)先級(jí)高。同時(shí)自增、自減運(yùn)算符的運(yùn)算數(shù)得是左值(可以放在賦值符號(hào)左邊的值),而不能是常數(shù)

所以你輸入2++,2--都報(bào)錯(cuò)

Uncaught ReferenceError: Invalid left-hand side expression in postfix operation

更多參考:JavaScript面試時(shí)候的坑洼溝洄——表達(dá)式與運(yùn)算符

2018年6月12日 02:46
編輯回答
蝶戀花

1++去掉語(yǔ)法糖就是1=1+1,左側(cè)沒(méi)有意義。++僅僅針對(duì)參數(shù)可用

2018年2月7日 17:04
編輯回答
涼心人

首先: ++ 或者 -- 通俗來(lái)講是針對(duì)變量的,比如a++,a--。錯(cuò)誤:2++,2--;
其次:a++是先運(yùn)算后加減。++a是先加減后運(yùn)算。舉個(gè)例子:

var a = 2;
var b = 3 * (a++); //參與運(yùn)算的a是2不是3
console.log(b) // 6 
console.log(a) // 3
var a = 2;
var b = 3 * (++a); //參與運(yùn)算的a是3
console.log(b) // 9 
console.log(a) // 3
2018年4月21日 13:19