1678287859
En este tutorial, aprenderá: ¿Qué es una referencia circular en JavaScript? Problema de JSON con referencias circulares y cómo resolver el error de referencia circular al convertir un objeto a JSON.
¿Alguna vez ha encontrado un error de "referencia circular" al trabajar con JSON?
En este tutorial, explicaré qué significa este error y cómo solucionarlo.
Este error, según mi experiencia, ocurre cuando intentas convertir un objeto con referencias circulares a JSON. Es posible que haya experimentado este error al hacer esto u otra cosa.
Tabla de contenido:
Primero, comprendamos qué es una referencia circular en JavaScript.
Un objeto en JavaScript puede tener diferentes tipos de datos para propiedades. He aquí un ejemplo de un objeto:
const obj = {
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
}
Este objeto tiene propiedades que contienen valores del tipo de datos de cadena, booleano, matriz y número.
En los objetos, también puede tener un objeto anidado. Esto es lo que quiero decir:
obj.languages = {
first: "javascript",
second: "java",
}
console.log(obj)
// {
// name: "Dillion",
// isDev: true,
// hobbies: ["singing", "writing"],
// age: 100,
// languages: {
// first: "javascript",
// second: "java"
// }
// }
Aquí, agregamos una languagespropiedad, que contiene un valor de objeto que contiene las propiedades firsty second.
Para acceder a las propiedades del objeto anidado, puede usar la notación de puntos (o la notación de corchetes ) como esta:
obj.languages.first
obj.languages.second
Tengo una versión en video de este tema que también puedes ver.
Ahora, ¿qué pasa si tenemos un objeto anidado que apunta al objeto original? Echale un vistazo a éste ejemplo:
obj.itself = obj
Aquí, agregamos una itselfpropiedad y le asignamos una referencia de objeto, que es obj. Esta es una referencia circular . Te mostraré por qué se llama referencia circular.
Intentemos imprimir objen la consola:
// {
// name: "Dillion",
// isDev: true,
// hobbies: ["singing", "writing"],
// age: 100,
// languages: {
// first: "javascript",
// second: "java"
// },
// itself: [Circular *1]
// }
En la consola, el valor de la itselfpropiedad muestra [Circular *1] . Esta es una notación de que la propiedad apunta al objeto, y tratar de registrar el valor de esa propiedad dará como resultado un objeto anidado sin fin.
Esto significa que la itselfpropiedad se verá así:
{
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
languages: {
first: "javascript",
second: "java"
},
itself: {
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
languages: {
first: "javascript",
second: "java"
},
itself: {
name: "Dillion",
// ...
}
}
}
Aquí hay una ilustración gráfica de esto:
Ilustración gráfica de una referencia cíclica
Como puede ver en este objeto, la itselfpropiedad tiene todas las propiedades del objeto, incluido itself, que nuevamente tiene todas las propiedades del objeto, incluido itselfy sigue y sigue sin terminar.
Con esta referencia circular de la propiedad al objeto, podemos acceder a la firstpropiedad así:
obj.itself.itself.itself.itself.itself.itself.first
Esta cantidad itselftodavía funciona debido a la referencia circular.
También podemos acceder a la namepropiedad de objesta manera:
obj.itself.itself.itself.itself.name
Como itselftiene una referencia a obj, podemos acceder a la namepropiedad desde cualquiera de los itselfs anidados.
Ahora veamos cómo se aplica este patrón de referencia circular a JSON.
Veamos de nuevo nuestro objeto inicial:
const obj = {
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
}
Cuando encadena este objeto para que se ajuste a la estructura JSON, este es el resultado:
const stringified = JSON.stringify(obj)
console.log(stringified)
// {
// "name":"Dillion",
// "isDev":true,
// "hobbies":["singing","writing"],"age":100
// }
JSON stringify pasa por las propiedades, desde la primera "nombre" hasta la última "pasatiempos".
¿ Qué pasaría si tuviéramos nuestro languagesobjeto anidado en forma de cadena?
obj.languages = {
first: "javascript",
second: "java",
}
const stringified = JSON.stringify(obj)
console.log(stringified)
// {
// "name":"Dillion",
// "isDev":true,
// "hobbies":["singing","writing"],"age":100,
// "languages":{
// "first":"javascript",
// "second":"java"
// }
// }
Como puede ver aquí, el método stringify pasa por las propiedades desde la primera "nombre" hasta la última "idiomas". Cuando llega a los idiomas, pasa por las propiedades del objeto que son firsty second.
Ahora introduzcamos una referencia circular y veamos qué sucede:
obj.itself = obj
const stringified = JSON.stringify(obj)
console.log(stringified)
// TypeError: Converting circular structure to JSON
Ahora obtenemos un error: TypeError: Converting circular structure to JSON .
¿Cuál es el problema aquí?
Al encadenar un objeto con una referencia circular, es un proceso de encadenamiento infinito.
Digamos que JSON stringify intentó pasar por este objeto, esto es lo que sucede: el método stringify va desde la primera propiedad en la objque está namehasta la última propiedad itself. Cuando llega a itself, especifica las propiedades de este objeto. El valor del itselfobjeto es el objobjeto, por lo que stringify pasa de namenuevo itself. Al cruzarse itself, tiene que pasar de nuevo.
Aquí hay una ilustración que explica lo que sucede:
Como puede ver aquí, esto da como resultado un bucle infinito porque stringifyno sabe cuándo detenerse. Cada vez que se cruza itself, tiene que pasar por este objeto que tiene itself. Seguirá encadenándose para siempre.
Esto es básicamente imposible. Entonces, cuando el método stringify encuentra una referencia circular en un objeto, simplemente arroja un error de inmediato. No hay necesidad de perder el tiempo 😅
Entonces, si encuentra este error al crear aplicaciones, ¿cómo lo resuelve?
Hay un par de formas de resolver este problema. Puede usar bibliotecas o implementar una solución usted mismo.
Una forma importante de resolver esto es mediante el uso de la serialización . Este proceso implica serializar el objeto para eliminar algunas propiedades de un objeto antes de convertirlo a JSON.
En este proceso, puede eliminar propiedades que no le interesen o, en nuestro caso, propiedades que pueden causar errores.
Aquí hay una solución simple:
obj.itself = obj
function replacer(key, value) {
if(key === 'itself') {
return null
}
return value
}
const stringified = JSON.stringify(obj, replacer)
console.log(stringified)
// {
// "name":"Dillion",
// "isDev":true,
// "hobbies":["singing","writing"],"age":100,
// "languages":{
// "first":"javascript",
// "second":"java"
// },
// "itself":null
// }
Lo que hemos hecho aquí es usar el argumento de reemplazo de JSON.stringify para modificar la itselfpropiedad.
En la función de reemplazo, buscamos la clave itselfy devolvemos el valor nullde esa clave. De esta manera, JSON.stringifyreemplaza el valor de referencia circular con nulldurante la encadenación, evitando así la encadenación infinita.
Si crea aplicaciones con JavaScript, es posible que se haya encontrado con este error de referencia cíclica de una forma u otra.
En este artículo, expliqué qué es este error y por qué existe al convertir un objeto a JSON.
Si te ha gustado este artículo, por favor compártelo con otros.
Fuente: https://www.freecodecamp.org
#javascript
1622207074
Who invented JavaScript, how it works, as we have given information about Programming language in our previous article ( What is PHP ), but today we will talk about what is JavaScript, why JavaScript is used The Answers to all such questions and much other information about JavaScript, you are going to get here today. Hope this information will work for you.
JavaScript language was invented by Brendan Eich in 1995. JavaScript is inspired by Java Programming Language. The first name of JavaScript was Mocha which was named by Marc Andreessen, Marc Andreessen is the founder of Netscape and in the same year Mocha was renamed LiveScript, and later in December 1995, it was renamed JavaScript which is still in trend.
JavaScript is a client-side scripting language used with HTML (Hypertext Markup Language). JavaScript is an Interpreted / Oriented language called JS in programming language JavaScript code can be run on any normal web browser. To run the code of JavaScript, we have to enable JavaScript of Web Browser. But some web browsers already have JavaScript enabled.
Today almost all websites are using it as web technology, mind is that there is maximum scope in JavaScript in the coming time, so if you want to become a programmer, then you can be very beneficial to learn JavaScript.
In JavaScript, ‘document.write‘ is used to represent a string on a browser.
<script type="text/javascript">
document.write("Hello World!");
</script>
<script type="text/javascript">
//single line comment
/* document.write("Hello"); */
</script>
#javascript #javascript code #javascript hello world #what is javascript #who invented javascript
1616670795
It is said that a digital resource a business has must be interactive in nature, so the website or the business app should be interactive. How do you make the app interactive? With the use of JavaScript.
Does your business need an interactive website or app?
Hire Dedicated JavaScript Developer from WebClues Infotech as the developer we offer is highly skilled and expert in what they do. Our developers are collaborative in nature and work with complete transparency with the customers.
The technology used to develop the overall app by the developers from WebClues Infotech is at par with the latest available technology.
Get your business app with JavaScript
For more inquiry click here https://bit.ly/31eZyDZ
Book Free Interview: https://bit.ly/3dDShFg
#hire dedicated javascript developers #hire javascript developers #top javascript developers for hire #hire javascript developer #hire a freelancer for javascript developer #hire the best javascript developers
1617257581
¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.
Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.
PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.
Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.
No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.
El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.
No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.
Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.
Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.
No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.
Más información:- https://www.datavare.com/software/exchange-restore.html
#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio
1589255577
As a JavaScript developer of any level, you need to understand its foundational concepts and some of the new ideas that help us developing code. In this article, we are going to review 16 basic concepts. So without further ado, let’s get to it.
#javascript-interview #javascript-development #javascript-fundamental #javascript #javascript-tips
1678287859
En este tutorial, aprenderá: ¿Qué es una referencia circular en JavaScript? Problema de JSON con referencias circulares y cómo resolver el error de referencia circular al convertir un objeto a JSON.
¿Alguna vez ha encontrado un error de "referencia circular" al trabajar con JSON?
En este tutorial, explicaré qué significa este error y cómo solucionarlo.
Este error, según mi experiencia, ocurre cuando intentas convertir un objeto con referencias circulares a JSON. Es posible que haya experimentado este error al hacer esto u otra cosa.
Tabla de contenido:
Primero, comprendamos qué es una referencia circular en JavaScript.
Un objeto en JavaScript puede tener diferentes tipos de datos para propiedades. He aquí un ejemplo de un objeto:
const obj = {
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
}
Este objeto tiene propiedades que contienen valores del tipo de datos de cadena, booleano, matriz y número.
En los objetos, también puede tener un objeto anidado. Esto es lo que quiero decir:
obj.languages = {
first: "javascript",
second: "java",
}
console.log(obj)
// {
// name: "Dillion",
// isDev: true,
// hobbies: ["singing", "writing"],
// age: 100,
// languages: {
// first: "javascript",
// second: "java"
// }
// }
Aquí, agregamos una languagespropiedad, que contiene un valor de objeto que contiene las propiedades firsty second.
Para acceder a las propiedades del objeto anidado, puede usar la notación de puntos (o la notación de corchetes ) como esta:
obj.languages.first
obj.languages.second
Tengo una versión en video de este tema que también puedes ver.
Ahora, ¿qué pasa si tenemos un objeto anidado que apunta al objeto original? Echale un vistazo a éste ejemplo:
obj.itself = obj
Aquí, agregamos una itselfpropiedad y le asignamos una referencia de objeto, que es obj. Esta es una referencia circular . Te mostraré por qué se llama referencia circular.
Intentemos imprimir objen la consola:
// {
// name: "Dillion",
// isDev: true,
// hobbies: ["singing", "writing"],
// age: 100,
// languages: {
// first: "javascript",
// second: "java"
// },
// itself: [Circular *1]
// }
En la consola, el valor de la itselfpropiedad muestra [Circular *1] . Esta es una notación de que la propiedad apunta al objeto, y tratar de registrar el valor de esa propiedad dará como resultado un objeto anidado sin fin.
Esto significa que la itselfpropiedad se verá así:
{
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
languages: {
first: "javascript",
second: "java"
},
itself: {
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
languages: {
first: "javascript",
second: "java"
},
itself: {
name: "Dillion",
// ...
}
}
}
Aquí hay una ilustración gráfica de esto:
Ilustración gráfica de una referencia cíclica
Como puede ver en este objeto, la itselfpropiedad tiene todas las propiedades del objeto, incluido itself, que nuevamente tiene todas las propiedades del objeto, incluido itselfy sigue y sigue sin terminar.
Con esta referencia circular de la propiedad al objeto, podemos acceder a la firstpropiedad así:
obj.itself.itself.itself.itself.itself.itself.first
Esta cantidad itselftodavía funciona debido a la referencia circular.
También podemos acceder a la namepropiedad de objesta manera:
obj.itself.itself.itself.itself.name
Como itselftiene una referencia a obj, podemos acceder a la namepropiedad desde cualquiera de los itselfs anidados.
Ahora veamos cómo se aplica este patrón de referencia circular a JSON.
Veamos de nuevo nuestro objeto inicial:
const obj = {
name: "Dillion",
isDev: true,
hobbies: ["singing", "writing"],
age: 100,
}
Cuando encadena este objeto para que se ajuste a la estructura JSON, este es el resultado:
const stringified = JSON.stringify(obj)
console.log(stringified)
// {
// "name":"Dillion",
// "isDev":true,
// "hobbies":["singing","writing"],"age":100
// }
JSON stringify pasa por las propiedades, desde la primera "nombre" hasta la última "pasatiempos".
¿ Qué pasaría si tuviéramos nuestro languagesobjeto anidado en forma de cadena?
obj.languages = {
first: "javascript",
second: "java",
}
const stringified = JSON.stringify(obj)
console.log(stringified)
// {
// "name":"Dillion",
// "isDev":true,
// "hobbies":["singing","writing"],"age":100,
// "languages":{
// "first":"javascript",
// "second":"java"
// }
// }
Como puede ver aquí, el método stringify pasa por las propiedades desde la primera "nombre" hasta la última "idiomas". Cuando llega a los idiomas, pasa por las propiedades del objeto que son firsty second.
Ahora introduzcamos una referencia circular y veamos qué sucede:
obj.itself = obj
const stringified = JSON.stringify(obj)
console.log(stringified)
// TypeError: Converting circular structure to JSON
Ahora obtenemos un error: TypeError: Converting circular structure to JSON .
¿Cuál es el problema aquí?
Al encadenar un objeto con una referencia circular, es un proceso de encadenamiento infinito.
Digamos que JSON stringify intentó pasar por este objeto, esto es lo que sucede: el método stringify va desde la primera propiedad en la objque está namehasta la última propiedad itself. Cuando llega a itself, especifica las propiedades de este objeto. El valor del itselfobjeto es el objobjeto, por lo que stringify pasa de namenuevo itself. Al cruzarse itself, tiene que pasar de nuevo.
Aquí hay una ilustración que explica lo que sucede:
Como puede ver aquí, esto da como resultado un bucle infinito porque stringifyno sabe cuándo detenerse. Cada vez que se cruza itself, tiene que pasar por este objeto que tiene itself. Seguirá encadenándose para siempre.
Esto es básicamente imposible. Entonces, cuando el método stringify encuentra una referencia circular en un objeto, simplemente arroja un error de inmediato. No hay necesidad de perder el tiempo 😅
Entonces, si encuentra este error al crear aplicaciones, ¿cómo lo resuelve?
Hay un par de formas de resolver este problema. Puede usar bibliotecas o implementar una solución usted mismo.
Una forma importante de resolver esto es mediante el uso de la serialización . Este proceso implica serializar el objeto para eliminar algunas propiedades de un objeto antes de convertirlo a JSON.
En este proceso, puede eliminar propiedades que no le interesen o, en nuestro caso, propiedades que pueden causar errores.
Aquí hay una solución simple:
obj.itself = obj
function replacer(key, value) {
if(key === 'itself') {
return null
}
return value
}
const stringified = JSON.stringify(obj, replacer)
console.log(stringified)
// {
// "name":"Dillion",
// "isDev":true,
// "hobbies":["singing","writing"],"age":100,
// "languages":{
// "first":"javascript",
// "second":"java"
// },
// "itself":null
// }
Lo que hemos hecho aquí es usar el argumento de reemplazo de JSON.stringify para modificar la itselfpropiedad.
En la función de reemplazo, buscamos la clave itselfy devolvemos el valor nullde esa clave. De esta manera, JSON.stringifyreemplaza el valor de referencia circular con nulldurante la encadenación, evitando así la encadenación infinita.
Si crea aplicaciones con JavaScript, es posible que se haya encontrado con este error de referencia cíclica de una forma u otra.
En este artículo, expliqué qué es este error y por qué existe al convertir un objeto a JSON.
Si te ha gustado este artículo, por favor compártelo con otros.
Fuente: https://www.freecodecamp.org
#javascript