如果([[] == 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
因此,真实值[]被保留。
热门推荐
10 婆婆生日祝福语短语简短
11 新年简短的祝福语爱情
12 离别简短的祝福语大全
13 儿女的生日祝福语简短
14 女朋友祝福语简短新年
15 弟弟生日祝福语简短的话
16 生日祝福语大全女生简短
17 18岁祝福语搞笑简短
18 结婚喜庆的祝福语简短