很抱歉,如果被问及回答,但我的所有搜索都返回有关逻辑 OR 的信息,并没有澄清情况。
我完全理解'|'与'||'在大多数语言中,但这让我陷入困境。我接触过javascript,但我对它知之甚少,下面的代码让我感到困惑。
:
a = a || document;
// HANDLE: $(function)
// Shortcut for document ready
if ( jQuery.isFunction(a) )
return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
:
在大多数情况下,我理解“a = a || document;”如果其中一个有效则返回“true”,如果两者均为 null、0 等则返回 false...
我对下面的代码有同样的问题。
:
jQuery.fn.height = function() {
if ( this[0] == window )
return self.innerHeight ||
jQuery.boxModel && document.documentElement.clientHeight ||
document.body.clientHeight;
if ( this[0] == document )
return Math.max( document.body.scrollHeight, document.body.offsetHeight );
return this._height(arguments[0]);};
:
以下如何产生高度值?或者是吗?
:
if ( this[0] == window )
return self.innerHeight ||
jQuery.boxModel && document.documentElement.clientHeight ||
document.body.clientHeight;
:
最佳答案
来自 MDN :
expr1 || expr2
(Logical OR) Returns
expr1
if it can be converted totrue
; otherwise, returnsexpr2
. Thus, when used with Boolean values, || returnstrue
if either operand istrue
; if both arefalse
, returnsfalse
.
它会先计算表达式的左边,如果结果可以转换为true
,它就停在那里。否则,它将计算并返回表达式的右侧。
换句话说,它既可以用作一种控制结构,也可以用作 bool OR 运算符。它可以用作类似这样的东西的简写
var result = <expr1>;
if (!result) result = <expr2>;
文档继续提供一些有用的示例:
var o1 = true || true; // t || t returns true
var o2 = false || true; // f || t returns true
var o3 = true || false; // t || f returns true
var o4 = false || (3 == 4); // f || f returns false
var o5 = "Cat" || "Dog"; // t || t returns Cat
var o6 = false || "Cat"; // f || t returns Cat
var o7 = "Cat" || false; // t || f returns Cat
关于javascript - 我需要帮助理解 javascript ||。是否为逻辑 'OR',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20579424/