javascript 脚本问题 while(!!o)

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:51:15
function getPosition(o){
var p={Top:0,Left:0};
while(!!o){
p.Top+=o.offsetTop;
p.Left+=o.offsetLeft;
o=o.offsetParent;
}
return p;
}
我知道 这是得到 网页元素o 的位置 不明白 为什么 while(!!o) 是什么意思 为什么不用 while(o){} 还有就是
while(!!o){
p.Top+=o.offsetTop;
p.Left+=o.offsetLeft;
o=o.offsetParent;
}
是什么意思 望不吝赐教

两个感叹号的作用是:判断 o 是否为为空,当 o 的值为空时就是false,非空就为true,这样就不会出现while(null)这样的问题了。
你用 alert(!!o); alert(!!null); alert(!!'Hello');这三个语句试一下就明白了。

while(!!o)就等于while(o)```至于为什么这么用``估计个人爱好~~

while(!!o){ //判断条件
p.Top+=o.offsetTop; //p的高度等于o元素距离上方或外层元素的位置
p.Left+=o.offsetLeft; //元素相对于自己的offsetParent元素的left位置
o=o.offsetParent; //定义offsetParent
}

!:非
!!:非非
这么用不是吃多了撑的吧

完全赞成二楼