2017-07-29 96 views
0

我是javascript新手,因此在研究基礎知識時,我遇到了表達式評估,因此通常表達式將按照「括號,指數,乘法,除法,加法,減法和其他」的順序進行評估。在javascript中的表達式評估

我的樣本表達爲「2 + 10-19 + 4-90 + 1

我的理解是在上述表達式中第一無的將基於加法減法以上的優先級執行加法所以它將是「12-23-91」,結果可能是「-80」,但在檢查表達式的輸出時,它將返回「-92」。

請解釋如何導出這個結果並糾正我在評估JavaScript引擎表達式時的理解。

+3

它是數學,並且像人類一樣從左到右進行。不相關,但12-23-91將是-102,而不是-80。 –

+2

'加法優先於減法' - 這個信念來自哪裏? –

+0

@DaveNewton - 所以'2 + 3 * 4'是...? –

回答

2

加法和減法具有相同的優先級(優先級),從左到右,以先發生者爲準。

=2+10-19+4-90+1 
=12-19+4-90+1 
=-7+4-90+1 
=-3-90+1 
=-93+1 
=-92 

乘法和除法相同。從左到右,以先發生者爲準。 欲瞭解更多示例請嘗試在此頁面上的。 https://www.w3schools.com/js/js_arithmetic.asp

+0

爲什麼你們回答這類問題?這是數學,而不是JavaScript。 –

+0

這是因爲在編程中,運算符優先級扮演着重要的角色。假設在上面的表達式中將會有乘法而不是減號,它們將首先被評估,然後會發生加法。 –

1

+-運算符的優先級是相同的,它遵循從左到右的優先順序。因此,處於相同的優先級,它給你回答-92如下:

2+10-19+4-90+1 
=12-19+4-90+1 
=-7+4-90+1 
=-3-90+1 
=-92 

你可以在Javascript here閱讀整個運算符優先級。