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