在少数情况下,我看到了以下形式的表达式:

!form.$valid && 'invalid' || 'valid'

按照从左到右的顺序指定here,这似乎意味着
(!form.$valid && 'invalid') || 'valid'

我对此如何返回字符串感到困惑。我认为这些字符串是true,因为它们不是nullundefined,这意味着表达式始终返回true

最佳答案

在您的示例中,您不是在比较 bool(boolean) 值VS bool(boolean) 值,而是:

( bool(boolean) 值VS字符串)VS字符串

您可以看到只有一个操作数是String的比较,才返回String(右侧或左侧)。

这就是为什么返回值是“无效”或“有效”的原因。

(关于另一个非 bool(boolean) 值,规则是相同的)。

关于javascript - &&和||在Javascript中具有相同的表达,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25344867/

10-11 14:40
查看更多