Maison > interface Web > js tutoriel > 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()

不言
Libérer: 2019-03-14 11:49:54
avant
2672 Les gens l'ont consulté

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" }" }"
Copier après la connexion

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" }]"
Copier après la connexion

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 }"
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal