Cet article vous présente une introduction à la sérialisation d'objets JavaScript, à l'utilisation de toString() et de valueOf(). Il a une certaine valeur de référence. Les amis dans le besoin pourront s'y référer.
Sérialisation
Objet de traitement JSON.stringify()
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" }" }"
Lorsque la valeur de l'objet est indéfinie et Object, elle sera ignorée, si elle est NaN et L'infini est nul, instance d'objet telle que d, ajoutez des guillemets doubles pour la clé et la valeur
JSON.stringify() gère les tableaux
let arr = [undefined, Object, Symbol(""), { e: 'nice' }] console.log(JSON.stringify(arr)) //输出 "[null, null, null, { "e": "nice" }]"
La sérialisation personnalisée
peut être réécrite en JSON () méthode de sérialisation personnalisée
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 }"
toSting() de l'objet
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
Lorsque toString et valueOf existent, lors du fonctionnement, ils essaieront de se convertir en un type de base, recherchez d'abord valueOf. Si le type de base est renvoyé, cela appellera uniquement valueOf. Sinon, par exemple, s'il s'agit d'un objet, recherchez toString. Si Object est également renvoyé, une erreur sera signalée
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!