原文链接: 链接描述
总结一下:
hint:相当于default,是对象的默认值。
OrdinaryToPrimitive(input,hint)中,若hint是
string,则先toString再valueOf;其他情况,则先valueOf再toString
所以对于[]来说,是先valueOf再toString,得到的结果是"",所以[]==false是true。
而对于!![]来说,根据规范相当于!!(toBoolean([])),而toBoolean([])为true,所以!![]是true。
下面看一些例子哦~~
[1] + [2] - [3] === 9; // true ,相当于“12” - 3 ,先toString,然后'-'会调用toNumber
[1] + [2] === "12"; // true
[1] +- [2] === "1-2"; // true,这要使用到Symbol.toPrimitive,这儿我自己还没太搞明白,后续再补上
1 - [2] === -1; // true
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。