javascript中的如下语句:
ev = ev || window.event;
或运算符不是应该返回true或false吗?为什么实际返回的是object对象
|
判断相等是不是应该用ev == ev呢? ev = ev || window.event; ev是对象的话 ev=ev 否则 ev=window.event 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个月前 vento : 看来我理解有问题,还以为会先把(ev || window.event)进行或运算,再进行赋值。 根据ls的解答,是不是相当于下面的语句? ev = (ev!=null)?ev:window.event; |
|
2个月前 deerchao : 可以这么认为. 但是要注意javascript里的==和!=的含意与静态语言里的不太一致. |