爲何[]是false而 !![] 是true

原文連接: 連接描述html

總結一下:post

hint:至關於default,是對象的默認值。code

OrdinaryToPrimitive(input,hint)中,若hint是string,則先toStringvalueOf;其餘狀況,則先valueOftoStringhtm

因此對於[]來講,是先valueOftoString,獲得的結果是"",因此[]==false是true。對象

而對於!![]來講,根據規範至關於!!(toBoolean([])),而toBoolean([])爲true,因此!![]是true。get

下面看一些例子哦~~input

[1] + [2] - [3] === 9;  // true ,至關於「12」 - 3 ,先toString,而後'-'會調用toNumber

[1] + [2] === "12";  // true

[1] +- [2] === "1-2";  // true,這要使用到Symbol.toPrimitive,這兒我本身還沒太搞明白,後續再補上

1 - [2] === -1; // true
相關文章
相關標籤/搜索