“||”是啥意思在 var 语句中是啥意思? [复制]

Posted

技术标签:

【中文标题】“||”是啥意思在 var 语句中是啥意思? [复制]【英文标题】:what does the "||" in a var statement mean? [duplicate]“||”是什么意思在 var 语句中是什么意思? [复制] 【发布时间】:2011-11-18 14:32:43 【问题描述】:

可能重复:null coalescing operator for javascript?What does “options = options || ” mean in Javascript?

有人能解释一下这个表达吗?我偶然发现了 javascript 代码行,我想知道它是什么意思。

var node = element.node || element[element.length - 1].node;

node get 的用法如下:

if (node.nextSibling) 
            node.parentNode.insertBefore(this.node, node.nextSibling);
         else 
            node.parentNode[appendChild](this.node);
        

起初我虽然节点应该是一个布尔值或其他东西,但它不是。 如果我认为意思是:节点是 element.node 但如果节点属性是未定义的节点是元素数组中的最后一个元素,我是否正确?

【问题讨论】:

【参考方案1】:

您的理解是正确的;请注意,即使定义了 element.node,但它是一个 falsey 值(0false 等),element[element.length - 1].node 将被分配给 node

【讨论】:

【参考方案2】:

这意味着,如果element.node在布尔表达式中有一个代表True的值,则node将为element.node,否则为element[element.length - 1].node

【讨论】:

【参考方案3】:

简单回答:意思是OR :)

参考:http://www.w3schools.com/js/js_operators.asp

【讨论】:

那部分很明显。真正的问题是:某种奇怪的“或”操作是否接受对象而不是布尔值,并且还返回一个对象而不是布尔值?这个“或”是如何定义的?因为它肯定不是按逻辑的标准定义。【参考方案4】:

意思是或

例如:

if this || that

意思是“如果这样或那样”

所以当电脑来到“||”部分代码,如果前面的语句为真,它将停止读取该 if 语句并自动执行下面的代码。

如果“||”之前的项目为假,则检查下一个,以此类推...

【讨论】:

以上是关于“||”是啥意思在 var 语句中是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

“|=”操作在C++中是啥意思?

语句“out |= (in & 0x7F) << (bytes++ * 7);”是啥意思?在java中是啥意思?

MySQL:等号冒号 =: 在更新语句中是啥意思?

这个语句在c++中是啥意思?

“var FOO = FOO || ”(将变量或空对象分配给该变量)在Javascript中是啥意思?

“var FOO = FOO || ”(将变量或空对象分配给该变量)在Javascript中是啥意思?