JavaScript条件逻辑

时间:2014-12-27 09:07:02

标签: javascript logic

这给了我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。

1 个答案:

答案 0 :(得分:2)

a >= b >= 5

分组为

(a >= b) >= 5

a >= b为true,在数字上下文中使用时会转换为1。所以这相当于

1 >= 5

false

如果要进行多重比较,则应使用:

alert(a >=b && b >= 5)