如果([[] == 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
因此,真实值[]被保留。
热门推荐
9 图书馆简短祝福语
10 兔年简短祝福语8字
11 给儿子新婚祝福语简短
12 新郎朋友祝福语简短大气
13 搞笑英译祝福语简短句
14 牛年公司新年祝福语简短
15 新年简短祝福语给亲人
16 饭店国庆祝福语简短
17 宝贝生日祝福语简短独特
18 祝福语结婚准备礼物简短