new Boolean方法问题new Boolean(false)到底是true还是false

qq_41016180 2017-11-10 02:45:52
var a = new Boolean(false);
var b = new Boolean([]);
if(a)console.log(1);
else console.log(2);
if(a == true)console.log(1);
else console.log(2);
if(b == true)console.log(1);
else console.log(2);

打印结果是1, 2, 1
求解为什么是这个结果
...全文
1469 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
似梦飞花 2017-11-10
  • 打赏
  • 举报
回复
new Boolean 返回的是一个对象 !!对象是true 但对象类型和基本类型比较时会转换为对应的基本类型 所以不等于true
  • 打赏
  • 举报
回复
a是对象,所以if(a)成立 和其他对象操作时会调用值,所以输出2,最后一个和1一样 if (a.valueOf()) console.log(1); else console.log(2); 这样就输出2了 传入的参数等价于false,Boolean对象的值为false javascript判断中为假false的值

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧