为了账号安全,请及时绑定邮箱和手机立即绑定

[]? 1: 0的结果为1

[]? 1: 0的结果为1

慕田峪4524236 2018-10-16 13:41:44
如图
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

第一个是这样的:当进行相等判断,如果有一边是布尔值,另一边不是,则布尔值变为数值,true变为1,而一边是对象,一边不是对象,则调用对象的valueOf()方法转换为基本类型再进行比较,如果valueOf()...总之,得让类型一致才能比,所以第一个肯定是返回false,因为[]不可能转换为1或者'1'

第二个是这样的:[]还是一个object(长度为0的数组),但是任何Object在需要转换为布尔值时都是转换为true的,除非你这么写null?1:0,这样是返回0的

综上所述,第一个里面,是转化为字符串在比较,一个是空字符串,一个是字符串“1”,所以不等,第二个是将object转化为true的布尔值


查看完整回答
反对 回复 2018-11-04
  • 1 回答
  • 0 关注
  • 730 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信