Javascript表达式错误(0 <= 14 <10)?

时间:2011-05-11 21:20:58

标签: javascript

这怎么可能是真的?

0 <= 14 < 10

我需要评估一个数字在0到10之间。

但这打破了我的逻辑。

该表达式不应该是假的吗?

6 个答案:

答案 0 :(得分:11)

这个表达式:

0 <= 14 < 10

相同
(0 <= 14) < 10

1 < 10

真。

你能做的是:

if (0 <= x && x < 10) { ...

Python是我现在能想到的唯一一种编程语言,其中表达式x < y < z完成了你期望它做的事情。

答案 1 :(得分:3)

这不是一个错误。这是解析表达式的方式。

从左到右:

0 <= 14 < 10
true < 10
1 < 10
true

正如您所看到的,0 <= 14true,因此它被替换为。{1}}。 true等于JavaScript中的1和大多数其他C派生语言。


你应该使用的是:

(0 <= 14) && (14 < 10)

答案 2 :(得分:0)

NO。那是真的。

0 <= 14true (same as int(1))1 < 10true

改为:

if(variable > 0 && variable < 10) {
   //do something
}

答案 3 :(得分:0)

0 <= 14 < 10
(0 <= 14) < 10
true < 10
1 < 10
true

答案 4 :(得分:0)

此表达式未评估您期望的方式。它相当于

 ((0 <= 14) < 10)

因此,第一个评估并返回true,因此您可以使用true < 10true < 10在JavaScript中评估为true

答案 5 :(得分:0)