鍍金池/ 問答/HTML/ js && 別人發(fā)過來的一道面試題 不太明白運(yùn)算過程

js && 別人發(fā)過來的一道面試題 不太明白運(yùn)算過程

function dd(){

var a = 4;
if(a += 6 && a++){
    console.log(a);
} 

}
按照之前的理解 因?yàn)椴粷M足判斷條件 應(yīng)該是不執(zhí)行if里面的東西 返回undefined; 可結(jié)果是輸出 8 求解

回答
編輯回答
孤影

因?yàn)?+= 的優(yōu)先級(jí)小于&& 。 所以你可以理解成醬紫。

a += (6 && a++)

然后 6 && a++ 的結(jié)果是4 。 所以替換一下就變成。

a += 4

答案就是8

2017年8月13日 07:21
編輯回答
心沉

結(jié)果等效于

var a = 4;

if(1){
    eval(a += 6 && a++); // 先計(jì)算 6 && a++ 的結(jié)果為a,也就是4,然后再計(jì)算 a += 4

    console.log(a);
} 

上面的6也可以是10000,只要為真就行,至于為什么,我想應(yīng)該是表達(dá)式的執(zhí)行順序?qū)е铝诉@個(gè)結(jié)果。

2018年7月10日 12:07