为什么以下评价为'hi'?

时间:2016-03-23 08:12:36

标签: javascript logical-operators

为什么以下评估为'hi'

'hi' || true || 50

我不是javascript的新手,但是我通过阅读一些旧书来重读我的知识,而我在生活中不明白为什么这个评估为'hi'而不是真的..可以有人解释这个??

4 个答案:

答案 0 :(得分:1)

欢迎来到真实和虚假价值观的世界。

  

如果某个值可以转换为true,则该值称为truthy。如果   一个值可以转换为false,该值就是所谓的falsy。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

这意味着基本上除了

之外的一切
false
null
undefined
NaN
""
0

||条件下评估为true,返回真正的第一个值。这有时会以类似合并的方式使用:

a = a || {}

如果a不是上述值,则将a设置为a,否则为空javascript对象。

答案 1 :(得分:0)

因为' hi'是一个非空字符串文字,当作为布尔值处理时,其值为true。表达式a || b || c返回第一个计算结果为true的表达式,在本例中为' hi'。

答案 2 :(得分:0)

来自MDN (Logical Operators)

如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,||如果任一操作数可以转换为true,则返回true;如果两者都可以转换为false,则返回false。

答案 3 :(得分:0)

嘿,谢谢大家的意见。是的,现在它是有道理的,因为我记得评估为true的第一个值是它将评估的值。我想我必须更多地研究这些东西,因为是的,它很简单,但在某种程度上它有时会让人感到困惑。再次感谢!!