2014-08-30 321 views
-5

我是新手,并试图学习JavaScript自己。什么是“||”意思?

有一个例子:

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop 

我只是想知道什么是符号 “||”做?谢谢!感谢你的帮助。

+6

这是JavaScript的[逻辑OR运算符](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators),它返回第一个操作数的值,如果它是真值否则返回第二个操作数的值。 – nnnnnn 2014-08-30 07:25:31

+0

也http://stackoverflow.com/questions/2851404/what-does-options-options-mean-in-javascript,http://stackoverflow.com/questions/7718259/what-does-mean(和*许多*更多,我只是搜索''[javascript]“||”') – user2864740 2014-08-30 07:29:23

+0

干杯家伙,这可以帮助我很多! “ – 2014-08-30 08:13:53

回答

6

这意味着你正在试图获得document.documentElement.scrollTop功能,但如果它返回undefined(因为功能没有在给定的浏览器支持),它会改用document.body.scrollTop函数。

+2

如果'document.documentElement.scrollTop' _is_被定义但恰好具有值'0',那么该语句将采用'document.body.scrollTop'的值。 – nnnnnn 2014-08-30 07:33:49

0

如果document.documentElement.scrollTopundefinednullscrollTop=document.body.scrollTop

0

这里||逻辑或操作。

Logical OR operator returns the first value of first operand if that is truthy 
otherwise it returns the second operand. 

上面的语句是一样的

if(document.documentElement.scrollTop){ 
    var scrollTop = document.documentElement.scrollTop 
} 
else{ 
    var scrollTop = document.body.scrollTop 
} 
+0

_”的值为空/未定义的_ _或零或假或空字符串或NaN。 – nnnnnn 2014-08-30 07:32:40

+0

@nnnnnn更新了我的答案。我得到了'0','''''''NaN'也是很麻烦的。 – Mritunjay 2014-08-30 07:34:47