js中>=跟==到底是怎么判定的?!wtf
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中>=跟==到底是怎么判定的?!wtf相关的知识,希望对你有一定的参考价值。
如下:
undefined==null 为true; undefined>=null 为false(why?)
null==0 为false(这个特殊处理可以理解); null>=0为true
>=用在不同类型间很常见啊,null>=-1 ; \'23\'>=22 都返回true,怎么能同理呢?
参考技术A 平等检查==为undefined和null定义,使得没有任何转换,他们相等,并不等于别的比较时null/undefined转换为数字:null变为0,undefined变为NaN
平等检查(==)和比较(> < >= <=)的工作方式不同。比较:转换null为数字,因此将其视为0。这就是为什么null >= 0是真的追问
那按这个理解 '2'==2不是应该等于false吗?但是为true,说明字符串2是先转换成数值才比较相等的吧,也就说明平等检查不也得转换吗(不是你说的没有任何转换)?那既然>=跟==工作的时候都存在转换,结果怎么不一样?
追答当比较值属于不同类型时,它们将转换为数字
但是null和undefined 属于一个例外
js window.scroll 怎么判断滚动到底部
若要想判断js window.scroll是否滚动到底部,需要用的三个属性值,它们分别是:
scrollTop、clientHeight和scrollHeight;
1、scrollTop为滚动条在Y轴上的滚动距离。
2、clientHeight为内容可视区域的高度。
3、scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。
so,滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。
参考技术A js判断window.scroll 判断滚动到底部的方法是设置一个变量,来检测鼠标位置。具体的实现方法如下:
$(window).scroll(function()
如果滚动的高度加上窗口的高度等于页面的高度就是到了底部
if($(window).scrollTop() + $(window).height() == $(document).height())
alert("bottom!"); //已经滚动到底部
);
或者也可以写专用方法检测高度:
function getDocHeight()
var D = document;
return Math.max(
D.body.scrollHeight, D.documentElement.scrollHeight,
D.body.offsetHeight, D.documentElement.offsetHeight,
D.body.clientHeight, D.documentElement.clientHeight
);
然后再用以下方法检测:
$(window).scroll(function()
if($(window).scrollTop() + $(window).height() == getDocHeight())
alert("bottom!");
); 参考技术B 判断scrollHeight(这个是滚动条的长度) 加上 scrollTop(这个是滚动条举例顶部的高度)是否等于document.clientHeight(这个是文档的高度)即可。本回答被提问者采纳
以上是关于js中>=跟==到底是怎么判定的?!wtf的主要内容,如果未能解决你的问题,请参考以下文章