为什么以下评估为'hi'
?
'hi' || true || 50
我不是javascript的新手,但是我通过阅读一些旧书来重读我的知识,而我在生活中不明白为什么这个评估为'hi'
而不是真的..可以有人解释这个??
答案 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)
如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,||如果任一操作数可以转换为true,则返回true;如果两者都可以转换为false,则返回false。
答案 3 :(得分:0)