首页 新闻 会员 周边 捐助

关于javascript 的一个问题

0
[已解决问题] 解决于 2016-07-27 15:06

var pScrolltop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

这里的 “ || ” 最终是怎么运算的,想不太明白,有知道的给解解惑!

枫叶弦秋的主页 枫叶弦秋 | 菜鸟二级 | 园豆:206
提问于:2016-07-26 17:34
< >
分享
最佳答案
1

这个是或运算符,跟其他语言的运算符可能不同.

它会把第一个数转换为布尔类型,然后判断真假,如果为真,那么就返回第一个原来的数,如果为假,就返回第二个数,一次类推.

所以常常看到这样的代码

result = result || [];

如果result为null 或者undefined,那就就返回[];

&& 的原理也是一样.

如果第一个数为假,那么就返回第一个数的值,如果为真,那么返回第二个数的值.

这里的值都是数值本身,而不是布尔值.

奖励园豆:5
小精灵儿Pawn | 菜鸟二级 |园豆:470 | 2016-07-26 20:52
其他回答(2)
0

 document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop

从前往后  返回第一个不为0的值

委员长 | 园豆:202 (菜鸟二级) | 2016-07-26 18:34
1

你可以理解成,这是一种用来取兼容性值的好方法,要么用ifelse,因为javascript不同于别的语言,在它里面只要是null,undefined,'',0,这些都属于false,浏览器实现javascriptAPI的写法不同,会导致document.documentElement.scrollTop在火狐浏览器下是undefined的情况(举例),也就是false,||有着返回结果为true的特性,所以一旦浏览器下不是undefined就返回这个值,这样不同浏览识别一个实现,就可以解决兼容性问题。

jasondyoung | 园豆:424 (菜鸟二级) | 2016-07-26 22:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册