Javascript(-1<;=5<;=1)==true?

Javascript(-1<;=5<;=1)==true?,javascript,compare,Javascript,Compare,我想验证给定数字是否在给定范围内: function validate(min, max, amount) { return (min <= amount <= max); } 功能验证(最小值、最大值、金额){ 返回值(最小使用此值: return (min <= amount && amount <= max); 但我个人会使用标准解决方案,使用&&,每个人都可以阅读,并且不涉及额外的函数调用 旁白:我本可以在中调用我的函数,而不是在中调用

我想验证给定数字是否在给定范围内:

function validate(min, max, amount) {
    return (min <= amount <= max);
}
功能验证(最小值、最大值、金额){
返回值(最小使用此值:

return (min <= amount && amount <= max);
但我个人会使用标准解决方案,使用
&&
,每个人都可以阅读,并且不涉及额外的函数调用

旁白:我本可以在
中调用我的函数
,而不是在
中调用
isin,但它可能会破坏ES3浏览器。

运算符(=,=,==)只使用两个参数。

当有更多参数时,它使用数学计算顺序。因此,事实上,您的代码的行为如下:

min <= amount  // true
true <= max // this is illogical
它将忽略
(一些计算)
,因为结果总是
false

这在每种语言中都很常见。这样的测试不会出现NullPointerException错误,因为第一个参数已经为false

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

if(obj !== undefined && obj.val() > 10) // javascript
if(obj.length != 0 && obj.val() > 10) //jQuery

我的另一个解决方案看起来像你发布的。所以没有办法像那样进行比较?@Luketep:“没有捷径”>还记得true有时有一个值,所以在上面的3>2中,计算结果为true,使表达式的第二部分计算结果为true>1,这是false。当然!感谢void_0!不敢相信这不是一个重复,但我能找到的最接近的是
min <= amount  // true
true <= max // this is illogical
if(false && (some computing))
if(obj != null && obj.getValue() > 10) //C++,Java, etc.

if(obj !== undefined && obj.val() > 10) // javascript
if(obj.length != 0 && obj.val() > 10) //jQuery