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”很奇怪。