【发布时间】:2015-07-15 06:33:30
【问题描述】:
avoidP2P() || t < lowBuffer || 0 === a.size(p2pManager.swarm.utils.contributors) ? requestToCDN() : requestToP2P()
如果上述函数如下: A ||乙 || C
C 会运行吗?
【问题讨论】:
标签: javascript
avoidP2P() || t < lowBuffer || 0 === a.size(p2pManager.swarm.utils.contributors) ? requestToCDN() : requestToP2P()
如果上述函数如下: A ||乙 || C
C 会运行吗?
【问题讨论】:
标签: javascript
在 JavaScript 中,|| 运算符表示“或”。所以对于像A || B || C这样的函数:
1. JavaScript 将首先尝试评估A 的值,如果是true,则执行将停止并且B 和C 甚至不会被调用.
2. 但是,如果 A 评估 falsy,那么 JS 将执行 B。同样,如果B 返回true,则执行将停止,C 将不会被调用。
3. 只有且仅当A 和B 都评估false,JS 才会尝试C,希望得到true 值。
供您参考,虚假值是:
null
false
0
undefined
''
[]
{}
希望有帮助!
【讨论】:
A 不是“运行”,也不会“返回”任何东西。它被“评估”为某种“价值”。此外,为了清楚起见,使用“falsy”而不是“false”可能会更好。 false 作为布尔值具有非常特殊的含义。
它的意思是“从这些不虚假的值中获取第一个值”,是“虚假”的一些:
false
null
undefined
0
NaN
''
更多信息在这里:https://developer.mozilla.org/en-US/docs/Glossary/Falsy
【讨论】: