逻辑or运算大家都很熟悉,都会用。但是在javascript中用的更多,用的更妙。有时候用它来解决兼容问题特别方面、简洁。
比如获取鼠标对象。在 Internet Explorer 里, event 是全局变量,会被存储在 window.event 里. 在 firefox 或者其他浏览器,event 会被相应的函数获取.当我们将mouseMove函数赋值于document.onmousemove,mouseMove 会获取鼠标移动事件。
在ie中获取鼠标对象是 var ev=window.event; 而在firefox等浏览器中用function(ev){var ev=ev},在调用函数的时候传入event,这样如果要做到兼容,就可以判断浏览器是否为ie然后再调用哪个方法。但是这样就变得麻烦了,用 or运算就可以很容易实现。
function(ev){
ev=ev||window.event;}在获取键盘的值 的时候也可以用到 ||
document.οnkeydοwn=function(e){
e = window.event || e; var currKey=e.keyCode||e.which||e.charCode;}OR 运算符 是这样工作的:从左到右,如果左边的值是
NaN、undefined、null、false、0,就会执行右边的,否则不执行右边的,直接执行下面的代码。