javascript - 与 JSON.stringify() 相比,使用 toString() 有什么区别?

标签 javascript

在这两种情况下,我都会输出对象的内容:

alert(JSON.stringify(obj));

alert(obj.toString());

所以...有什么区别?各自的优缺点是什么?

有实际例子可以说明区别吗?

最佳答案

除非您有一个带有自定义 .toString 方法的自定义对象返回该对象的 JSON.stringify,否则没有 obj 会给出obj.toString() == JSON.stringify(obj)

obj 是像 [1,2,3] 这样的数组时,.toString() 给出:

"1,2,3"

JSON.stringify:

"[1,2,3]"

这些很接近但不完全相同,JSON 序列化的没有逗号歧义,直接作为 Javascript 运行或者可以作为 JSON 解析。

参见:

["1,",2,3].toString();
//"1,,2,3" ... so you can't just split by comma and get original array
//it is in fact impossible to restore the original array from this result

JSON.stringify(["1,",2,3])
//'["1,",2,3]'
//original array can be restored exactly

关于javascript - 与 JSON.stringify() 相比,使用 toString() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15834172/

相关文章:

javascript - 附加第二个子项,更改其颜色,innerhtml

javascript - vanillaJS 中的简单 channing 图像不起作用

javascript - 使用 javascript 迭代 json 数据的通用函数?

javascript - 如何过滤掉数组中不包含特定值的单词?

javascript - 测试 Javascript 函数的阻塞行为

javascript - 在 Three.js 中渲染复杂模型

Javascript 方法以字符串形式返回方法代码

javascript - 如何停止div右侧的水平滚动

javascript - 将类添加到 Angular2 指令中的下一个元素

javascript - 如果日期月份等于输入的隐藏值,则更改 div