如果([[] == 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