最近开发的时候碰到个问题,使用JSON.stringify()转换数据时,如果对象里面的值是undefined,这个值会丢失,
1 | let obj = {a:1, b:"12", c: "", d: 234, e: undefined}; |
上面正常的一个对象在使用JSON.stringify转换的时候,e丢了。
JSON.stringify()的实现可以分为以下几个步骤:
1、判断输入参数是否是一个对象类型。如果不是对象类型,则直接返回这个值。
2、创建一个数组,用于存储对象的属性名和对应的值。
3、遍历对象的属性,将属性名和对应的值添加到数组中。
4、根据选项参数控制输出结果的格式。
5、将数组转换为JSON格式的字符串并返回。
并不是所有的数据类型的转换JSON都是支持的,因此部分不支持的就会被忽略掉,比如undefined