这给了我5,false(IE9,Windows Vista):
var a,b;
alert(a=b=5);
alert(a>=b>=5);
我对第一个很好,但是两个条件都是正确的,那么怎么会出错呢?
如果我尝试:
alert(a=b);
警报为undefined
。
JavaScript是否从右到左阅读,即b = 5,a = b?但是第二个警报应该是真的,因为b> = 5现在为真(= 1),而a = 5> = 1。
答案 0 :(得分:2)
a >= b >= 5
分组为
(a >= b) >= 5
a >= b
为true,在数字上下文中使用时会转换为1
。所以这相当于
1 >= 5
是false
。
如果要进行多重比较,则应使用:
alert(a >=b && b >= 5)