Why does !{}[true] evaluate to true in JavaScript?

前端 未结 10 1478
一个人的身影
一个人的身影 2020-12-12 17:55

{}[true] is [true] and ![true] should be false.

So why does !{}[true] evaluate to true

10条回答
  •  长情又很酷
    2020-12-12 18:30

    Because {}[true] does not return true, but undefined, and undefined is evaluated as false:

    http://jsfiddle.net/67GEu/

    'use strict';
    var b = {}[true];
    alert(b); // undefined
    b = !{}[true];
    alert(b); // true
    

提交回复
热议问题