【发布时间】:2012-01-04 10:18:48
【问题描述】:
我正在尝试测试一个数字是否大于 0 但小于 8。如何在 JavaScript 中做到这一点?
这就是我正在尝试的:
if (score > 0 < 8) { alert(score); }
【问题讨论】:
-
我不明白为什么语法
0 < score > 8没有为这种组合的大于/小于检查实现。为什么要将任何内容与前两个值的布尔评估值进行比较? -
@ephemient 你能解释一下你的代码是如何工作的吗?
-
@tom 简单。
score>>>0将score转换为非负整数。 (由于二进制补码表示,负数变为非常大的正值。)如果它是 8 或更大,min产生 8,按位与 7 到 0 相加,这是一个假值。如果它在 0 和 7 之间,min什么都不会改变,&也不会改变,从而导致 0 的假值或 1 和 7 之间的真值。 -
@AlexejMagura 链式不等式符号已经在数学中使用了几个世纪。传统怎么样? (例如,Paolo Ruffini's General Theory of Equations, 1799, p. 82)
标签: javascript syntax comparison-operators