如果([[] == 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 婆婆高寿祝福语大全简短