js 中的 object和经过qs.parse qs.stringify 转化后的区别

327 阅读1分钟
let obj={
    name:'xiaoming',
    age:20,
    address:'中国'
}

qs.parse转化后

qs.parse(obj)
// 输出:{name: "abc", age: 20, address: "中国"}

比较 obj和qs.parse 转化后的对象是否一致,使用lodash的isEqual进行判断

_.isEqual(obj,qs.parse(obj))
// 输出:true

结论:qs.parse 转化对象和原对象的值是一样的

qs.stringify转化后

qs.stringify(obj)
// 输出: name=abc&age=20&address=%E4%B8%AD%E5%9B%BD

qs.parse(qs.stringify(obj))转化后

qs.parse(qs.stringify(obj))
// 输出:{name: "abc", age: "20", address: "中国"}

这个时候我们应该可以看到区别了,转后的age的值变成了字符串,这个原对象是有区别的