4

特定の数値が特定の範囲内にあることを検証したい:

function validate(min, max, amount) {
    return (min <= amount <= max);
}

しかし、これは正しく機能していないようです。2 つの比較と論理 AND で実行できることはわかっていますが、1 つの比較で実行したいと考えています。これを実現するNATIVE JavaScriptの方法はありますか?

4

2 に答える 2

3

演算子 ( == 、 <= 、 < 、 >= 、 == ) は 2 つの引数しか取りません。

より多くの引数がある場合、計算の数学的な順序が使用されます。実際、コードは次のように動作します。

min <= amount  // true
true <= max // this is illogical

論理ステートメントを実行して次のようなものを見つけるときも最適です。

if(false && (some computing))

(some computing)結果は常にであるため、無視されますfalse

これは、すべての言語で非常に一般的な実践です。このようなテストでは、最初の引数が既に false であるため、NullPointerException エラーは発生しません。

if(obj != null && obj.getValue() > 10) //C++,Java, etc.

if(obj !== undefined && obj.val() > 10) // javascript
if(obj.length != 0 && obj.val() > 10) //jQuery
于 2013-05-28T09:14:52.037 に答える