var a=1000;
if(1001>=a>999){
console.log('ok');
}else{
console.log('no')
}
输出no;
var a=1000;
if(1000<=a<1001){
console.log('ok');
}else{
console.log('no');
}
输出ok;
为什么第一段拆分出来。
1001>=a;
a>999;
都能同时成立。
但是组合在一起就不行了呢?
虽然大概知道了点判断机制,但是能有人详细说说嘛?
同学……不要把我们常用的数学思维直接套用到编程上来,你这里的疑问就是把这两者搞混淆了。
你先好好想想下面几个问题:
js有连不等的运算吗?
假如一个语句有多个运算符,那么运算顺序是怎样的?
数学运算的隐式变换规则是什么样的?
这三个问题的答案是:
没有
从优先级高的开始计算,假如优先级相同,那么从左往右依次计算
将非数字转换为数字直接运算
那么回到你的问题,对于运算
1001>=a>999
和1000<=a<1001
,它们的运算过程到底是怎样的?