day1到day2好像相隔了很久。。。没事,还是有了day2了
之前一直都是做活动页,基本上没有接触到数据接口这些,所以也一直没有接触过 JSON.stringify() 这个函数。今天就深入理解下吧
1.定义
JSON.stringify() 方法用于将JavaScript值转成JSON字符串。
2.语法
JSON.stringify(value[, replacer[, space]])
//一般情况下面的用法
JSON.stringify(data,null,2)
参数说明
- value
必需,一个有效的JSON 字符串. - replacer
可选,用于转换结果的函数或数组. - space
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返 回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 有可以使用非数字,如:\t。
3.高级说明
- 按照 JSON 的规范,使用 JSON.stringify() 做对象序列化时,如果一个属性为函数,那这个属性就会被忽略。
const data2 = {
a: 'aaa',
fn: function() {
return true
}
}
JSON.stringify(data)
// 结果是 "{"a":"aaa"}"
- 还有一种情况,一个属性的值为 undefined
const data2 = {
a: 'abc',
b: undefined
}
JSON.stringify(data2)
// 结果是 "{"a":"abc"}"
- 如果属性为 null 则可以正常序列化这个属性:
const data3 = {
a: 'abc',
b: null
}
JSON.stringify(data3)
// 结果是 "{"a":"abc","b":null}"
因为 null 可表示已经赋值,而 undefined 表示未定义、为赋值,所以执行 JSON.stringify 不会处理。