空数组
/* ToNumber(ToPrimitive([])) == ToNumber(false) */
[] == false; // true
执行 [].toString()
时,如果存在则调用 [].join()
,否则调用 Object.prototype.toString()
。这个比较是返回 true
因为 [].join()
返回''
,强制进入 0
,等于 false ToNumber 。
请注意,所有对象都是真实的,而 Array
是 Object
的一个实例:
// Internally this is evaluated as ToBoolean([]) === true ? 'truthy' : 'falsy'
[] ? 'truthy' : 'falsy'; // 'truthy'