首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【JS】261- 如何提升JSON.stringify()的性能?

熟悉的JSON.stringify() 在浏览器端或服务端,JSON.stringify()都是我们很常用的方法: 将 JSON object 存储到 localStorage 中; POST 请求中的...比 stringify 更快的 stringify 由于 JavaScript 是动态性很强的语言,所以对于一个 Object 类型的变量,其包含的键名、键值、键值类型最终只能在运行时确定。...总结来看,如何得到比 stringify 更快的 stringify 方法呢?...需要先确定对象的结构信息; 根据其结构信息,为该种结构的对象创建“定制化”的stringify方法,其内部实际是通过字符串拼接生成结果的; 最后,使用该“定制化”的方法来 stringify 对象即可。...stringify 函数的具体代码。

1.6K10

JS 原生方法原理探究(八):如何实现 JSON.stringify()?

这是JS 原生方法原理探究系列的第八篇文章。本文会介绍如何实现 JSON.stringify() 方法。 JSON.stringify() 可以将对象或值转化为 JSON 字符串。...理论上,它可以接受很多种不同的数据类型作为参数,而不同的数据类型,处理和转化的结果也不同。所以在实现这个方法之前,我们先弄清楚具体的处理规则。...throw new Error('存在循环引用') } } }) console.log('不存在循环引用') } 在 JSON.stringify...属性丢失其实就是在遍历对象的时候略过这些属性 在检测循环引用的时候,存在嵌套关系的对象应该共享同一条父级链,所以递归的时候需要把存放父级链的数组传进去;同时,不存在嵌套关系的两个对象不应该共享同一条父级链...最后,我并没有实现 JSON.stringify() 中的 replacer 参数和 space 参数,感兴趣的读者可以在上面代码的基础上进一步拓展。 本文到此结束,感谢你的阅读。

2K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    慎用JSON.stringify

    JSON.stringify 基础语法 JSON.stringify(value[, replacer [, space]]) 概念 MDN 中文文档对它的解释如下: JSON.stringify()...我个人觉得是有所不妥的,不妥之处在于“对象或者数组”,因为实际上对于普通的值,我们也可以使用 JSON.stringify,只是我们很少这么用罢了。...JSON.stringify 强大的第二个参数 replacer 这个参数是可选的,可以是一个函数,也可以是一个数组 当是一个函数的时候,则在序列化的过程中,被序列化的每个属性都会经过该函数的转换和处理...to null[1] MDN JSON.stringify()[2] json.stringify()的妙用,json.stringify()与json.parse()的区别[3] 你不知道的 JSON.stringify...[3] json.stringify()的妙用,json.stringify()与json.parse()的区别: https://www.cnblogs.com/echolun/p/9631836.

    1K30

    JSON.stringify()

    JSON.stringify() JSON.stringify()九大特性 第一个特性 对于undefined、任意的函数以及symbol三个特殊的值分别作为对象属性的值、数组元素、单独的值时JSON.stringify...undefined、任意的函数以及symbol被JSON.stringify()作为单独的值进行序列化时都会返回undefined。...// "["aaa",null,null,null,"eee"]" 正如我们在第一特性所说,JSON.stringify()序列化时会忽略一些特殊的值,所以不能保证序列化后的字符串还是以特定的顺序出现(...) ); // "{"y":"stringify"}" 第八大特性 我们都知道实现深拷贝最简单粗暴的方式就是序列化:JSON.parse(JSON.stringify()),这个方式实现深拷贝会因为序列化的诸多特性从而导致诸多的坑点...": "今天在学 JSON.stringify()", // "emotion": "like shit" // }" 上面代码一眼就能看出第三个参数的作用了,花里胡哨的,其实这个参数还是比较鸡肋的

    93820

    Javascript的JSON.stringify()知多少?

    写在前面 前几天看到前端胖头鱼的一篇文章《就因为JSON.stringify,我的年终奖差点打水漂了》,讲的就是JSON.stringify在工程开发中的应用,线上用户不能提交表单。...本篇文章就将详细谈谈JSON.stringify,并将带着你进行自己手写一个JSON.stringify,站在全局考察自己对于各种数据类型理解的深度,和各种极端的边界情况的处理能力。...JSON.stringify() JSON.stringify是日常开发中经常用到的JSON对象中的一个方法,用于将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer...手撕JSON.stringify() 其实现场手撕代码还是有点麻烦的,需要考虑到对各种类型的数据进行处理,考虑各种边界情况。...,我的年终奖差点打水漂了》 写在最后 我们平时开发中将JSON.stringify应用最多的可能就是浅层的对象进行深拷贝,也就是进行序列化处理。

    1.3K00

    JSON.stringify() 的 5 个秘密特性

    作为一名 JavaScript 开发人员,JSON.stringify() 是用于调试的最常见函数。但是它的作用是什么呢,难道我们不能使用 console.log() 来做同样的事情吗?..."{ "name" : "Prateek Singh", "age" : 26 }" 一般来说,开发人员使用 stringify 函数的场景较为普遍,就像我们在上面做的那样。...但我要告诉你一些隐藏的秘密,这些小秘密会让你开发起来更加轻松。 第二个参数(数组) 是的,stringify 函数也可以有第二个参数。它是要在控制台中打印的对象的键数组。看起来很简单?...当对象变大时,查找属性的难度增加。stringify 函数的第二个参数这时就有用了。让我们重写代码并查看结果。...我希望你能学到 stringify() 的一些基本特征。

    72420

    JSON.stringify() 的 5 个秘密特性

    作为一名 JavaScript 开发人员,JSON.stringify() 是用于调试的最常见函数。但是它的作用是什么呢,难道我们不能使用 console.log() 来做同样的事情吗?...但我要告诉你一些隐藏的秘密,这些小秘密会让你开发起来更加轻松。 第二个参数(数组) 是的,stringify 函数也可以有第二个参数。它是要在控制台中打印的对象的键数组。看起来很简单?...当对象变大时,查找属性的难度增加。stringify 函数的第二个参数这时就有用了。让我们重写代码并查看结果。...JSON.stringify 返回这个函数的结果并对其进行序列化,而不是将整个对象转换为字符串。参考下面的例子。...我希望你能学到 stringify() 的一些基本特征。

    81230

    JSON.stringify() 的 5 个秘密特性

    "{ "name" : "Prateek Singh", "age" : 26 }" 一般来说,开发人员使用 stringify 函数的场景较为普遍,就像我们在上面做的那样。...但我要告诉你一些隐藏的秘密,这些小秘密会让你开发起来更加轻松。 第二个参数(数组) 是的,stringify 函数也可以有第二个参数。它是要在控制台中打印的对象的键数组。看起来很简单?...当对象变大时,查找属性的难度增加。stringify 函数的第二个参数这时就有用了。让我们重写代码并查看结果。...JSON.stringify 返回这个函数的结果并对其进行序列化,而不是将整个对象转换为字符串。参考下面的例子。...我希望你能学到 stringify() 的一些基本特征。

    73651

    差点因为 JSON.stringify 丢了奖金...

    由于JSON.stringify的错误使用,他负责的其中一个业务模块上线后出现了bug,导致某个页面无法使用,进而影响用户体验,差点让他失去年终奖。 在这篇文章中,我将分享这个悲伤的故事。...然后我们还将讨论 JSON.stringify 的各种功能,以帮助您避免将来也犯同样的错误。 我们现在开始 故事是这样的。 他所在的公司,有一位同事离开了,然后胖头被要求接受离开同事的工作内容。...接着,我们一起来了解一下 JSON.stringify,它为啥那么“厉害”,差点把我朋友的奖金都给弄丢了。...了解一下 JSON.stringify 其实,这个bug主要是因为胖头对JSON.stringify不熟悉造成的,所以,这里我们就一起来分析一下这个内置函数的一些特点。...自己实现 JSON.stringify 理解一个函数的最好方法是自己实现它。

    45710

    前端 JavaScript 中 JSON.stringify() 的基本用法

    这时候,就需要我们将对象转换为字符串进行输出,JSON.stringify() 方法就可以帮我们实现将对象转为字符串的过程。...方法描述 JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer...语法 JSON.stringify(value[, replacer [, space]]) 参数说明: value 将要序列化成 一个 JSON 字符串的值。...在开始时, replacer 函数会被传入一个空字符串作为 key 值,代表着要被 stringify 的这个对象。随后每个对象或数组上的属性会被依次传入。...总结 JSON.stringify() 方法可以通过参数控制输出的数据和格式,灵活应用它会大大提高我们的工作效率。 学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

    87910
    领券