当面试被问到你是否知道 JSON.stringify
的作用意义,我们该如何回答。查阅网上的八股文答案大概教你这样回答:
JSON.stringify(value,replacer,space)
它是一个用于序列化对象的方法,接受三个参数,第一个参数是要被序列化的对象,接受对象或数组类型。第二个参数用于标记需要序列化的属性,接受数组和函数类型。第三个参数用于描述序列化后的缩进字符数,用于美化格式。
当然以上的回答也没有错,不过面试官考察的更多是大家的实际应用能力以及实战场景,如果只回答八股文的内容,更多的只能体现大家的背诵能力而已,所以接下来我将给大家呈现 JSON.stringify
的实际应用场景。
场景一:localStorage 的存储
前端 localStorage 中只能接受字符串的存储类型,而且它是一个 KV 的结构,我们尝试模拟存储一个对象这种场景:
第二个参数接受一个方法,方法接受两个参数,一个是 key,一个是 value,我们可以在里面写逻辑,如果 key===’b’,这时候我们返回 undefine,否则的话我们把 value 返回,这时候我们就可以得到一个没有 b 属性的一个序列化的字符串,我们再把这个字符串给 JSON.parse
回来,就可以得到消除 b 之后的一个对象,这也是 JSON.stringify
的一个巧妙应用。