类型检测
要检测一个变量是不是基本数据类型,typeof操作符是最佳工具
typeof操作符是确定一个变量是字符串(string),number(NaN也是数据),boolean,undefined的最佳工具
如果是个对象null,则返回"object",是个函数返回"function"
检测引用类型的值时,使用Instanceof操作符,返回true/false
instanceof Object instanceof Array instanceof RegExp
相等操作符
- 相等和不相等——先转换成相似的类型再比较(强制转型)
在比较之前,null,undefined不能转换成其他任何值
null == undefined 返回true 它们是类似的值 - 全等和不全等——仅比较还不转换类型
undefined === null 返回false 它们是不同类型的值 - NaN和谁都不等
页面坐标位置
页面坐标通过事件对象的pageX和pageY属性,能告诉你事件是在页面中的什么位置发生的。
这两个属性表示鼠标光标在页面中的位置,因此坐标是从页面本身而非视口的左边和顶边计算的。
页面没有滚动的情况下,pageX和pageY的值与clientX和clientY的值相等。
IE8及更早版本不支持事件对象的页面坐标,可以用客户区坐标和滚动信息计算出来。
用到document.body(混杂模式)或document.documentElement(标准模式)中的scrollLeft和scrollTop属性
EventYtil.addHandler(div,"click",function(event){
event = Event.getEvent(event);
var pageX = event.pageX;
var pageY = event.pageY;
if(pageX == undefined){
pageX = event.clientX+(document.body.scrollLeft||document.docuemntElement.scrollLeft);
}
if(pageY == undefined){
pageX = event.clientY+(document.body.scrollTop||document.docuemntElement.scrollTop);
}
alert("page" + pageX +"," + pageY);
})
此文来源于《JavaScript高级程序设计》的总结摘取