一: 求表达式 ! + [ ] + [ ] + ! [ ] 的值是多少;
! [ ] ! 后转化成boolean,先[ ].toString() => 空串; 再将空串转boolean 为false,最终true;
+ [ ] 加号两边不是字符串或数字,会将两边变成字符串或数字,因为前面没有,默认转成数字,[ ]转后是0;
+ 如果前面有字符串,转化成字符串
转化成是 ! 0 + ' ' + !false
优先级: !高于+;
+运算两边的转化问题:字符串有先; 不同类型一旦一方有字符串 ,则另一方转化成字符串,如果没有字符串,则双方都转化成数字3 + [ ];
引用值转化成原始值自动调用自身的toString方法; [1, 2, 3].toString() ==> '1, 2, 3' { }.toString( ) ==> "[object Object]"
二: 求表达式 [ ] == false 的值是多少// true; if( [ ]) { console.log(111) } 能输出吗?//能;为什么是false还能打印呢?
== 两边的值有引用值时候,先把引用值转化成原始值,
== 两边的数据类型不一致时候,都要转化成number类型