Maison > interface Web > Questions et réponses frontales > rapport d'erreur javascript baocun

rapport d'erreur javascript baocun

WBOY
Libérer: 2023-05-17 16:26:08
original
485 Les gens l'ont consulté

Le développement frontal JavaScript est un domaine très populaire à l'heure actuelle. Dans ce domaine, le traitement et le stockage des données sont très importants dans le processus de stockage des données, divers problèmes d'erreur se produisent souvent, parmi lesquels les plus courants sont les erreurs qui. se produisent lorsque JavaScript stocke des données. Analysons les erreurs et les solutions qui se produisent lorsque JavaScript stocke des données.

1. Erreurs courantes de stockage de données JavaScript

  1. Lors de l'utilisation de localStorage pour le stockage de données, si nous y stockons un objet directement au lieu de le convertir en chaîne JSON puis de le stocker, une erreur apparaîtra. Le clonage des données a échoué car l'élément stocké possède une propriété qui ne peut pas être clonée.
  2. Lors de l'utilisation de sessionStorage pour le stockage de données, si nous y stockons un objet de référence cyclique directement, une erreur apparaîtra également. Le message d'erreur est : La structure cyclique des données ne peut pas être conservée dans le stockage.

2. Solution

  1. Convertissez l'objet en chaîne JSON puis stockez-le. La méthode JSON.stringify() peut convertir des objets en chaînes JSON et la méthode JSON.parse() peut convertir des chaînes JSON en objets.
  2. Résolvez le problème de référence circulaire. La référence circulaire fait référence à une situation dans laquelle les objets se réfèrent les uns aux autres, formant une boucle fermée. Lorsqu'il s'agit de références circulaires, nous pouvons utiliser une bibliothèque de détection de références circulaires. Par exemple, la bibliothèque fast-json-patch fournit la fonction de détection de références circulaires.

3. Exemple d'analyse

Utilisons quelques exemples pour illustrer les erreurs et les solutions qui se produisent lorsque JavaScript stocke des données.

  1. Message d'erreur

Lorsque nous utilisons localStorage pour stocker un objet, si nous ne le convertissons pas en chaîne JSON avant de le stocker, le message d'erreur suivant apparaîtra :

Le clonage des données a échoué car l'élément stocké a un propriété qui ne peut pas être clonée.

  1. Solution

Convertissez l'objet en chaîne JSON puis stockez-le :

let obj = {name: 'Tom', age: 18};
// Convertissez l'objet en JSON String
let str = JSON.stringify(obj);
//Storage JSON string
localStorage.setItem('user', str);

  1. Message d'erreur

Lorsque nous utilisons sessionStorage pour stocker un objet de référence circulaire Quand, le message d'erreur suivant apparaîtra :

La structure cyclique des données ne peut pas être conservée dans le stockage.

  1. Solution

Pour résoudre le problème de référence circulaire, vous pouvez utiliser la fonction de détection de référence circulaire fournie par la bibliothèque fast-json-patch, code Comme suit :

const jsonPatch = require('fast-json-patch')
const obj = { nom : 'Tom', amis : [] }
obj.friends.push(obj)

const valid = jsonPatch .validate (obj)
if (valid === undefined) {
console.log('L'objet est valide')
sessionStorage.setItem('user', JSON.stringify(obj))
} else {
console. log( 'L'objet a une référence circulaire')
}

Résumé

Les erreurs JavaScript lors du stockage des données sont un problème très courant. Ces messages d'erreur nous rappellent certaines limitations et erreurs qui se produisent lorsque nous stockons des données, et nous devons en créer. dispositions particulières lors du stockage du traitement des données. Par exemple, nous devons utiliser la méthode JSON.stringify() pour convertir l'objet en chaîne JSON avant de le stocker, et nous devons également utiliser une bibliothèque de détection de référence circulaire pour résoudre le problème de référence circulaire. Ce n'est que par l'apprentissage et la pratique que nous pourrons mieux maîtriser les connaissances et les compétences liées au stockage de données JavaScript.

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!

source:php.cn
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