如果([[] == false)为true,为什么[[] || true)导致[]?-JavaScript

如果我们仔细查看问题陈述,([[] == false)和([] || true)之间的区别如下:

在第一种情况下,我们使用松散的条件检查,允许类型强制执行。

在第二种情况下,我们将[]评估为其各自的布尔值(真或假),该布尔值使用函数Boolean()代替钩子下的强制类型。

现在让我们揭露这两种情况背后发生的转换。

情况1 -([] ==假)

根据MDN文档,如果使用宽松相等运算符(==)比较两个数据类型x和y,则,

使用Number()函数将布尔值转换为数字-

因此,条件现在变为-

[] == 0// Number(false) = 0

然后如果Object类型的变量将被转换为原始值-

"" == 0

最后,空字符串将被转换为数字-

0 == 0

以上最终返回true

情况2 -([] ||是)

在这种情况下,将通过使用内置的Boolean()函数将[]的真假值转换为布尔值来进行检查。和,

Boolean([]) = true

因此,真实值[]被保留。

以上是 如果([[] == false)为true,为什么[[] || true)导致[]?-JavaScript 的全部内容, 来源链接: utcz.com/z/353527.html

回到顶部