jdn*_*jdn 6 javascript
我有两个这样的说法。他们为什么都评价为false?
false
console.log([] == true) console.log(![] == true)
如果[] == true不是false应该![] == true导致的true?
[] == true
![] == true
true
nic*_*oum 7
这是胁迫的方式。
强制的第一步是将任何非原始类型转换为原始类型,然后使用一组规则将左侧,右侧或两侧转换为相同类型。您可以在此处找到这些规则。
在您的情况下[] == true,将通过以下4个步骤:
[] == 1
"" == 1
0 == 1
而基于操作者的优先级的!在![] == true这样的表达式转换为首先执行false == true这显然false。
!
false == true
您可以尝试Felix Kling的现场演示,以更好地了解相同性运算符的工作原理。
归档时间:
6 年,1 月 前
查看次数:
226 次
最近记录: