为什么Boolean({})是true

为什么Boolean({})是true.空对象为什么是true

阅读 3.9k
3 个回答

这是真假值的问题,除了0, false, '', null, undefined, NaN外,其他都是真值,也就是转为布尔值后是 true 的值。同理,这个逻辑还可以用于 if 判断中:

// 以下代码不会通过 if 判断
if (0) console.log('result: 0.');
if (false) console.log('result: false.');
if ("") console.log('result: "".');
if (null) console.log('result: null.');
if (undefined) console.log('result: undefined.');
if (NaN) console.log('result: NaN.');

// 以下的代码会被输出结果
if (1) console.log('result: 1.');
if (true) console.log('result: true.');
if ("Hello") console.log('result: "Hello".');
if ({}) console.log('result: {}.');
if ([]) console.log('result: [].');
新手上路,请多包涵

console.log(Boolean([]))
console.log(Boolean({}))
console.log(Boolean(function(){}))

除了简单类型以外,js中的复杂类型(空的)都会返回true

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题