在JavaScript中评估复杂的数学表达式

Evaluate complex mathematical expressions in JavaScript

本文关键字:表达式 复杂 JavaScript 评估      更新时间:2023-09-26

我有类似于的表达式:300<=x<400.在运行时,我用一个特定的值替换x,然后对表达式求值,得到true或false。

对于上面的表达式,使用eval()函数总是返回true,在一段时间内它应该是false。

知道如何评估这些表达式吗?

感谢

在JavaScript中,与几乎所有主要的编程语言一样,您必须将300 <= x < 400视为两个表达式,而不是一个,如下所示:

300 <= x && x < 400

&&的意思是"answers"(你会在的语言中找到&&)。

您根本不需要(也不应该)使用eval,只需直接使用以下表达式即可:

if (300 <= x && x < 400) {
    // ...
}

300 <= x < 400没有给你预期的结果的原因是它的工作原理是这样的:

  1. 评估300 <= x并得到结果(truefalse

  2. 将该结果代入该子表达式所在的位置,并计算得到的result < 400

由于步骤1中的结果是布尔值,result < 400将始终是true,因为result将被强制为一个数字,而true强制为1false强制为0