永发信息网

为什么javascript中Boolean([]) == true,[] == false?

答案:4  悬赏:40  手机版
解决时间 2021-03-27 22:09
  • 提问者网友:献世佛
  • 2021-03-27 02:52
为什么javascript中Boolean([]) == true,[] == false?
最佳答案
  • 五星知识达人网友:woshuo
  • 2021-03-27 03:45
1. [] == false; //true
这里是因为==符号会把两边的类型转换成一样的。这里会转成number
[] == 0 // 把false转为number

"" == 0 // 用array的valueOf/toString获取基本类型

0 == 0 // 空字符串转成数字之后是0,Number('')

2.![] == false; //true

javascript中所有对象都是true。
!true == false // []也是object,所以是true

false == false // true取反是false
全部回答
  • 1楼网友:鸠书
  • 2021-03-27 05:35
什么叫做Boolean类型?
  • 2楼网友:舊物识亽
  • 2021-03-27 04:52
这个[]==false是正确的,因为空对象本身就可以作为false处理追问但是![] == false返回的也是true怎么解释追答因为==操作符做了复杂的转换
" \t\r\n" == 0 这个的结果也是true;
所以最好不要用==来比对,要想严格就用===三个等号做比较~如果这样的话上面的那两个就会有一个不成立了~
  • 3楼网友:轻雾山林
  • 2021-03-27 04:34
[] == false; //在==判断时,[]被当做Array数组处理,且[]是空数组。空数组在==判断时,转换为0,即false。
![] == false; //在==判断前,先做![]运算,此时[]被!当做Array()对象,可以理解为!{};{}相当于“非undefined”,那么!{}就是“非(非undefined)”,即undefined;undefined在做==运算时,转换为0,即false。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯