javascript比较运算符

cro*_*ryo 3 javascript python comparison operators

我来自python背景,并在做了一个javascript项目之后遇到了一个问题

0 <5 <3

输出为true,我的猜测是它运行第一个运算符并完全忽略第二个运算符

和python它将呈现为false.

我不关心如何让这个工作,但奇怪的是,它不是在文件中唯一暗示做(0 <x && x <3)而不是保持简单

猜猜我的问题是,如果有人能够回答这就是为什么这样的话

iCo*_*dez 5

在JavaScript中,这个:

0 < 5 < 3
Run Code Online (Sandbox Code Playgroud)

评估如下:

(0 < 5) < 3
Run Code Online (Sandbox Code Playgroud)

这转化为:

true < 3
Run Code Online (Sandbox Code Playgroud)

将其进一步转换成这个(因为true1在一个数值范围内):

1 < 3
Run Code Online (Sandbox Code Playgroud)

这是真的.


然而,Python的设计不同.如此处所述,它解释了这一点:

0 < 5 < 3
Run Code Online (Sandbox Code Playgroud)

相当于这个:

0 < 5 and 5 < 3
Run Code Online (Sandbox Code Playgroud)

上面的表达式可以进一步转化为:

True and False
Run Code Online (Sandbox Code Playgroud)

这是假的.