Maison  >  Article  >  interface Web  >  Introduction à la sérialisation d'objets JavaScript, à l'utilisation de toString() et valueOf()

Introduction à la sérialisation d'objets JavaScript, à l'utilisation de toString() et valueOf()

不言
不言avant
2019-03-14 11:49:082643parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer