Javascript 是否需要event.pageX空检查?

Javascript 是否需要event.pageX空检查?,javascript,Javascript,我有这个代码来获取鼠标的位置。 我想知道是否确实需要: if (event.pageX != null) 是否存在event.pageX为null的情况 我还需要event | | window.event function handleMouseMove(event) { event = event || window.event; if (event.pageX != null) { key = event.pageX * event.pageY;

我有这个代码来获取鼠标的位置。 我想知道是否确实需要:

if (event.pageX != null)
是否存在
event.pageX
null
的情况

我还需要
event | | window.event

function handleMouseMove(event) {

    event = event || window.event;

    if (event.pageX != null) {
        key = event.pageX * event.pageY;
    };
}
如果我像这样重写代码呢

function handleMouseMove(event) {
    key = event.pageX * event.pageY;      
}

如果由于某种原因,侦听器在窗口加载完成之前触发,则
event.pageX
将为
null
,函数将返回错误。尽管您使用的是鼠标事件侦听器,在窗口的
onload
函数之前不太可能触发,但最好检查
pageX
是否为空


一句话:安全总比抱歉好。

如果由于某种原因,侦听器在窗口加载完成之前触发,则
事件.pageX
将为
null
,函数将返回错误。尽管您使用的是鼠标事件侦听器,在窗口的
onload
函数之前不太可能触发,但最好检查
pageX
是否为空


底线:安全总比抱歉好。

我认为空检查是不必要的。正如阿萨菲所提到的,在初始渲染时,
pageX
仅为
null
。由于
pageX
封装在函数中,因此当
pageX
null
时,不太可能调用它。Mozilla文档中的一个可视示例。我们还希望保留
|
语句以支持较旧的浏览器

总体而言,您的代码可以编写为:

function handleMouseMove(event) {
    event = event || window.event;
    key = event.pageX * event.pageY;      
}

我认为空检查是不必要的。正如阿萨菲所提到的,在初始渲染时,
pageX
仅为
null
。由于
pageX
封装在函数中,因此当
pageX
null
时,不太可能调用它。Mozilla文档中的一个可视示例。我们还希望保留
|
语句以支持较旧的浏览器

总体而言,您的代码可以编写为:

function handleMouseMove(event) {
    event = event || window.event;
    key = event.pageX * event.pageY;      
}

event=event | | | window.event
是一个用于古代浏览器的多填充。基于事件多填充,目标是不存在
pageX
pageY
的地方,而不是
pageYOffset
/
pageXOffset
。检查pageX是否显式为“null”很奇怪。
event=event | | window.event
是一种古老浏览器的多填充。基于事件多填充,目标IE不存在
pageX
pageY
,而不是
pageYOffset
。检查pageX的显式“null”很奇怪。