2017-07-29 113 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阅读整个运算符优先级。