let obj = {
val: undefined,
a: NaN,
b: Infinity,
c: new Date(),
d: { e: 'nice' },
y: Object
}
console.log(JSON.stringify(obj))
//输出 "{ "a": null, "b": null, "c": "2019-03-13T12:01:44.295Z", "d": "{ "e": "nice" }" }"
当对象的value为undefined和Object时会被忽略,为NaN和Infinity为null,对象实例如d,为key和value都加上双引号
let arr = [undefined, Object, Symbol(""), { e: 'nice' }]
console.log(JSON.stringify(arr))
//输出 "[null, null, null, { "e": "nice" }]"
当成员为undefined、Object、Symbol时为null,对象也是为key和value都加上双引号
可以重写toJSON()方法进行自定义序列化
let obj = {
x: 1,
y: 2,
re: {
re1: 1,
re2: 2,
toJSON: function(){
return this.re1 + this.re2;
}
}
}
console.log(JSON.stringify(obj))
//输出 "{ "x":1, "y":2, "re":3 }"
let obj = { x:1, y:2 }
console.log(obj.toString()) //输出 "[object Object]"
obj.toString = function(){
return this.x + this.y;
}
"Result" + obj; //输出 "Result3" 调用了toString
+obj; //输出 "3" 调用了toString
obj.valueOf = function(){
return this.x + this.y + 100;
}
"Result" + obj; //输出 "Result103" 调用了toString
当toString和valueOf都存在时,在进行操作时,都会尝试转换成基本类型,先找valueOf,如果返回基本类型,这只调用valueOf,如果不是,比如是对象的话,就去找toString,如果也返回Object,就会报错
jquery中serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。serialize确实是能够解决一般的提交数据,但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时设置查询条件参数,就需要object对象)。
最近在做 Node 服务端需求的时候,遇到了几次服务端报错的问题。打 log 发现均是一些 Error,但是它们都没法很好地透传给前端浏览器,出现问题只能查看服务端机器的日志,调试起来非常不方便。思考了一下
JSON(JavaScript Object Notation)用于与Web服务器或RESTFull API交换数据,从Web服务器接收的数据始终是字符串。为了使用这些数据,您需要使用JSON.parse()解析数据,它将返回一个JavaScript对象或对象数组。
其实看看上面的代码,不难发现,if…else这种格式,其实就是数据结构中的单链表,那么,初步利用JavaScript实现单链表,如下:
在 JavaScript 中,可以使用 URLSearchParams 对象来处理 URL 中的查询字符串。序列化(将 JavaScript 对象转换为查询字符串)可以使用 URLSearchParams 对象的 append() 方法
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!