技术文摘
JSON.stringify 鲜为人知的六件事
JSON.stringify 鲜为人知的六件事
在 JavaScript 编程中,JSON.stringify 是一个常用的函数,用于将 JavaScript 对象转换为 JSON 字符串。然而,它还有一些不为人知的特性和细节,下面就为您揭示其中的六件事。
对循环引用的处理 当对象中存在循环引用时,
JSON.stringify会抛出错误。这是为了避免无限递归和潜在的内存泄漏。如果您需要处理包含循环引用的对象,可以先手动处理或使用专门的库来解决。忽略不可枚举的属性 默认情况下,
JSON.stringify只会序列化可枚举的属性。如果您希望包含不可枚举的属性,可以通过JSON.stringify(obj, function(key, value) {... })这种自定义的 replacer 函数来实现。对函数的处理 函数不会被包含在序列化后的 JSON 字符串中。这是因为 JSON 格式主要用于数据交换,而函数通常不被视为数据。
对日期对象的处理
JSON.stringify会将日期对象转换为字符串,但其格式可能不是您期望的。如果需要特定的日期格式,需要先将日期对象进行格式化处理。对特殊值的处理 像
Infinity、NaN和undefined这些特殊值在序列化时会被转换为null。对
toJSON方法的调用 如果对象定义了toJSON方法,JSON.stringify会优先调用该方法来获取要序列化的值。这为对象提供了自定义序列化逻辑的机会。
了解这些关于 JSON.stringify 的细节,可以让您在使用它时更加得心应手,避免出现意想不到的问题,并能更好地满足您在数据处理和交换方面的需求。无论是在构建 Web 应用程序还是进行前后端数据交互,掌握这些知识都将对您的开发工作大有裨益。
深入理解 JSON.stringify 的这些特性,能让您编写出更高效、可靠的 JavaScript 代码,为您的项目增添一份坚实的保障。
TAGS: JSON.stringify 技巧 JSON.stringify 特性 JSON.stringify 注意事项
- MySQL SUM() 函数无匹配行时,怎样将输出自定义为 0 而非 NULL
- FOREIGN KEY 的含义及在 MySQL 表中的使用方法
- MySQL 时间部分之间可用作分隔符的标点符号是哪个
- MySQL HEX() 函数是什么,与 CONV() 函数有何差异?
- 怎样把表或数据库从一台MySQL服务器复制到另一台MySQL服务器
- 怎样使用 MySQL 函数 STR_TO_DATE(Column, ‘%input_format’)
- 如何在无列列表的情况下创建 MySQL 视图
- 用 SQL 查询计数器统计每日、每月、每年及总计的 Web 访问量
- 怎样以批处理模式运行MySQL语句
- 无BIND时程序进行非SQL更改的执行结果
- 怎样从 MySQL 表删除已有列
- 如何用 MySQL 查询获取字符串的最后 5 个字符
- MYSQL 控制流函数 CASE 的工作原理
- 从 MySQL 命令行工具返回 Windows 命令 shell 的方法
- MySQL存储过程参数有哪些不同模式