javaScript 不可思议问题

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

不能序列化函数

不能解决循环引用的对象

 

posted @ 2020-11-06 10:40  HappyHacking!  阅读(74)  评论(0编辑  收藏  举报