空数组

/* ToNumber(ToPrimitive([])) == ToNumber(false) */
[] == false; // true

执行 [].toString() 时,如果存在则调用 [].join(),否则调用 Object.prototype.toString()。这个比较是返回 true 因为 [].join() 返回'',强制进入 0,等于 false ToNumber

请注意,所有对象都是真实的,而 ArrayObject 的一个实例:

// Internally this is evaluated as ToBoolean([]) === true ? 'truthy' : 'falsy'
[] ? 'truthy' : 'falsy'; // 'truthy'