【问题标题】:Expression for "is x greater than y and less than z"?“x 是否大于 y 且小于 z”的表达式?
【发布时间】:2012-01-04 10:18:48
【问题描述】:

我正在尝试测试一个数字是否大于 0 但小于 8。如何在 JavaScript 中做到这一点?

这就是我正在尝试的:

if (score > 0 < 8) { alert(score); }

【问题讨论】:

  • 我不明白为什么语法0 &lt; score &gt; 8 没有为这种组合的大于/小于检查实现。为什么要将任何内容与前两个值的布尔评估值进行比较?
  • @ephemient 你能解释一下你的代码是如何工作的吗?
  • @tom 简单。 score&gt;&gt;&gt;0score 转换为非负整数。 (由于二进制补码表示,负数变为非常大的正值。)如果它是 8 或更大,min 产生 8,按位与 7 到 0 相加,这是一个假值。如果它在 0 和 7 之间,min 什么都不会改变,&amp; 也不会改变,从而导致 0 的假值或 1 和 7 之间的真值。
  • @AlexejMagura 链式不等式符号已经在数学中使用了几个世纪。传统怎么样? (例如,Paolo Ruffini's General Theory of Equations, 1799, p. 82)

标签: javascript syntax comparison-operators


【解决方案1】:

代码如下:

if (score > 0 && score < 8){
    alert(score);
}

附:这与 jQuery 无关。很简单, JavaScript!

【讨论】:

  • 好奇怪。我知道这就是使用多个条件的方式(当然这两个条件都必须为真),但它在我的代码中不起作用:(我以前从来没有这样不起作用...
【解决方案2】:
if ((score > 0) && (score < 8)) {
    alert(score);
}

但这是 JavaScript,不是 jQuery。

【讨论】:

    【解决方案3】:

    试试:

    if(score > 0 && score < 8){alert(score);)
    

    【讨论】:

    • 比较更有意义,但语法错误依然存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    相关资源
    最近更新 更多