为了账号安全,请及时绑定邮箱和手机立即绑定

用document.body.clientHeight获得高度是36,用document.documentElement.clientHeight;获得高度是600,那么用h=document.body.clientHeight||document.documentElement.clientHeight;为甚么会输出600呢,有没有机会输出为36?

如题。谢谢帮忙!!!

正在回答

2 回答

A||B预算法则:如果A真,A||B为真,不会执行B;反之,如果A为假,由B决定A||B的值。上面长度取值第一个取值即为真就不会执行第二个运算,所以都为前面的值。我是这么理解的,希望能帮到你

0 回复 有任何疑惑可以回复我~

思维僵化了

600||36 = 600

-1||36 = -1

"haha"||36 = haha

0||36 = 36

undefined||26 =26

0 回复 有任何疑惑可以回复我~
#1

鲜衣 提问者

不知道是不是你不明白我的题意还是。。。。呜呜,还是不明白!!!
2015-09-09 回复 有任何疑惑可以回复我~
#2

鲜衣 提问者

是不是有的浏览器只能识别document.body.clientHeight||document.documentElement.clientHeight;中的一个,这时候就输出能识别的那一个的值。有的能识别两个,那么能识别两个的就会输出第一个识别的值,可以这样理解吗?还有,如果两个都能识别,这种值得差异会不会造成误解? 谢谢你,麻烦你了!!!
2015-09-09 回复 有任何疑惑可以回复我~
#3

管理員 回复 鲜衣 提问者

这里面包含了两个问题,1.长宽提取,2.“||”运算符问题 而两个问题完全是独立的。 第2个问题,只需做几个测试就能解决,解决之后就能排除一些干扰情况(排除法 缩小范围) 结论是:一边为0或undifined时,取另一边值 而第1个问题没有解释的价值。 开发的思路不能僵化。手段太少就说明没入门。
2015-09-09 回复 有任何疑惑可以回复我~
#4

鲜衣 提问者 回复 管理員

谢谢你!我测试过,当用var h1=document.body.scrollHeight和var h2=document.documentElement.scrollHeight都可以输出值,所以会有此疑惑。是否可以证明浏览器对二者都可以识别?
2015-09-09 回复 有任何疑惑可以回复我~
#5

kingry 回复 管理員

很新鲜,逻辑或操作符,本以为操作符两边应该为显式的boolean值,这样也可以?!! "haha"||36 = haha 这个不懂。另外的我去试试。
2015-09-10 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

用document.body.clientHeight获得高度是36,用document.documentElement.clientHeight;获得高度是600,那么用h=document.body.clientHeight||document.documentElement.clientHeight;为甚么会输出600呢,有没有机会输出为36?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信