var a = 1+1+'2';
console.log(a);
> 22
var a = 1+1+'2'+7;
console.log(a);
> 227
var a = 1+1+'2'+7+10;
console.log(a);
> 22710
var a = 1+1+'2'+7+10-2;
console.log(a);
> 22708
其中是0來自22708?強制的例子。需要在Javascript強制性示例中進行澄清
var a = 1+1+'2';
console.log(a);
> 22
var a = 1+1+'2'+7;
console.log(a);
> 227
var a = 1+1+'2'+7+10;
console.log(a);
> 22710
var a = 1+1+'2'+7+10-2;
console.log(a);
> 22708
其中是0來自22708?強制的例子。需要在Javascript強制性示例中進行澄清
該提示在之前的評估中。 1+1+'2'+7+10-2
相當於((1+1)+'2'+7+10)-2
或"22710"-2
。雖然+
是爲字符串和數字定義的(當兩個參數都是數字時,在其他情況下是連續的),-
僅針對數字定義;所以"22710"
被強制編號爲:22710-2
確實是22708
。
Javascript處理減號和減號的方式不同。你得到零,因爲它採取22710
和減去2得到22708
。
如此這般從2
要22
要227
要22710
爲22710 - 2
其中給出22708
的實際原因,爲什麼是在我頭上的方式雖然。
如果left被評估爲(1 + 1)爲什麼權利不被評估爲(7 + 10)或(10-2)?或者,對於字符串強制的右和左關聯有不同的規則嗎? –
因爲它*是從左到右評估的。 '1 + 1'是'2'; '2 +'2''是'「22」'; '「22」+ 7'是「227」'; '「227」+ 10'是'「22710」'。最後,「22710」-2「是」22708「,正如答案中所解釋的那樣。這裏永遠不會有'7 + 10'這樣的表達。 – Amadan
a = 2,b = 3,c = 4; a = b = c;在這個例子中,評估從右到左發生,所以我在原來的問題示例中感到困惑。 感謝您的澄清,非常感謝在[操作者表] –