1.[] == ![]
分析:优先执行 ![] 为 false,接着 Number(false) 为 0;[].toString() 为 " ",接着 Number(" ") 为 0。最终结果 true。
2.{} == !{}
分析:优先执行 !{} 为 false,接着 Number(false) 为 0;({}).toString() 为 "[object Object]",接着 Number("[object Object]") 为 NaN 。最终为 false。
3.JSON.parse(JSON.stringify(a))
分析:深拷贝。将对象里得对象也序列化成字符串存在硬盘(和之前的 a 就没关系了),接着再反序列化成新对象。
会忽略 undefined
会忽略 symbol
不能序列化函数
不能解决循环引用的对象