1 + '1' ===> 11
true + 0 ===> 1
{} + [] ===> [object Object]
4 + [1] ===> 41
'a' + + 'b' ===> aNaN
[] == 0 ===> true
! [] == 0 ===> true
[] == ![] ===> true
![] == 0 ===> true
[] == [] ===> false
[] === [] ===> false
[] == undefined ===> false
[] === undefined ===> false
Boolean([]) ===> true
!!num ===> num不为0则为true,为0则返回false
特别提醒
判断对象是否为{}的方法: Object.keys(obj).length === 0 ===> obj为{}
{} == undefined ===> false
{} === undefined ===> false
Boolean({}) ===> true
特别提醒
{} == {} ===> false
{} === {} ===> flase(在set数据结构中多次加入{}都能成功,因为它们始终不等)
{} == !{} ===> false
特别提醒
NaN == NaN ===> false
NaN === NaN ===> false(虽然NaN无论是双等还是三等都为false,但在set数据结构中多次加入NaN却只有第一次能成功,因为Set内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符===,但与===不同)