这正常吗?它是功能还是错误? (我正在使用 Firebug ):
>>> '' || true
true
>>> '' || false
false
>>> '' && false
""
>>> '' && true
""
最佳答案
它不将空字符串转换为Boolean
。
使用||
它正在评估左侧,其中一个空字符串是falsy。然后它会检查右侧(因为它是一个或,而该侧可能为真),并返回该值。
使用&&
因为 &&
需要两边都是 true 而左边是 falsy,所以它不会检查右边(short circuit evaluation)。因此,它只返回左侧,即空字符串。
JavaScript 总是返回它评估的最后一个值。
>>> '' || 0 || undefined || null || false || NaN || 'hello'
"hello"
关于javascript - ||将空字符串转换为 bool,&& 不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8383200/