一、JSON.stringify()
1. JSON.stringify() 用于将一个值转为 JSON 字符串。该字符串符合 JSON 格式,并且可以被JSON.parse方法还原
JSON.stringify('abc') // ""abc""
JSON.stringify(1) // "1"
JSON.stringify(false) // "false"
JSON.stringify([]) // "[]"
JSON.stringify({}) // "{}"
JSON.stringify([1, "false", false])
// '[1,"false",false]'
JSON.stringify({ name: "张三" })
// '{"name":"张三"}'
注意,对于原始类型的字符串,转换结果会带双引号
JSON.stringify(false) // "false"
JSON.stringify('false') // "\"false\""
上面代码中,如果不是内层的双引号,将来还原的时候,引擎就无法知道原始值是布尔值还是字符串
如果对象的属性是undefined、函数或XML
对象,该属性会被JSON.stringify
过滤
var obj = {
a: undefined,
b: function () {}
};
JSON.stringify(obj) // "{}"
如果数组的成员是undefined
、函数或XML
对象,则这些值被转成null
var arr = [undefined, function () {}];
JSON.stringify(arr) // "[null,null]"
正则对象会被转成空对象
JSON.stringify(/foo/) // "{}"
JSON.stringify 方法会忽略对象的不可遍历的属性
var obj = {};
Object.defineProperties(ob