[待解决问题] javascript的或运算符问题
提问时间: 2008-03-12 16:09
该问题已到期 浏览:327 次

javascript中的如下语句:

ev = ev || window.event;

或运算符不是应该返回true或false吗?为什么实际返回的是object对象


提问者:vento - 初学一级
所有回答(3)
判断相等是不是应该用ev == ev呢?
2个月前   回答者:张荣华 - 小虾三级
ev = ev || window.event;
ev是对象的话 ev=ev 
 否则 ev=window.event

2个月前   回答者:暗香浮动 - 菜鸟二级
javascript里的"||"运算符与C/C++/Java/C#等静态类型语言里的语义不一样.

它的运算结果不是bool型的,而是任意类型的.

http://www.webreference.com/javascript/reference/core_ref/ops.html
[quote]
||   (Logical OR) Returns the first operand if it can be converted to true; otherwise, returns the second operand. 
[/quote]

2个月前   回答者:deerchao - 老鸟四级
2个月前   vento :
看来我理解有问题,还以为会先把(ev || window.event)进行或运算,再进行赋值。
根据ls的解答,是不是相当于下面的语句?
ev = (ev!=null)?ev:window.event;
2个月前   deerchao :
可以这么认为.
但是要注意javascript里的==和!=的含意与静态语言里的不太一致.
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除