Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

154
Visualizações
Barras diagonales en localStorage JSON Stringify

Me pregunto por qué console.log devuelve barras invertidas en este ejemplo simple que seguí en un tutorial (soy bastante nuevo en el uso de localStorage):

 localStorage.clear(); let myObj = { name: "Bob", age: 50 }; let myObj_serialized = JSON.stringify(myObj); localStorage.setItem("myObj", myObj_serialized); console.log(localStorage);

He visto otras publicaciones donde explica cómo puede eliminar las barras invertidas, sin embargo, quería saber por qué sucede esto y cómo puedo evitarlo.

El enlace del tutorial que seguí fue: https://www.youtube.com/watch?v=AUOzvFzdIk4&t=275s

Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La razón por la que esto sucede es que el objeto en forma de cadena usa JSON, el JSON adecuado tiene " propiedades circundantes y valores (de cadena). Sin embargo, lo que está guardando también es una cadena. Para que esto se almacene correctamente, debe escapar del interior " .

Por ejemplo, si tuviera que crear manualmente el mismo JSON en cadena, tendría que hacer lo mismo; de lo contrario, estaría abriendo y cerrando constantemente su definición de cadena:

 // suggested and invalid. let stringThing = "{"name":"Bob","age":50}"; // correct let stringThing2 = "{\"name\":\"Bob\",\"age\":50}";

Ahora, obviamente, hay formas de evitar esto en js, puede simplemente usar ' para iniciar la cadena, y ya no necesita escapar del " , pero aún vería comillas dobles de escape si cerrara la sesión de la cadena resultante.

EDITAR

evolutionxbox hizo un excelente punto en los comentarios sobre esta respuesta, pero necesita una pequeña aclaración. el \ es un carácter de escape (en javascript). Cuando se usa solo en una cadena, en realidad nunca se mostrará si imprimiera el valor de esa cadena en la pantalla en el DOM.

El \ que se muestra en sus datos guardados técnicamente no está realmente allí en la cadena cuando está en la memoria. Se coloca allí cuando se almacena, de modo que cuando se analiza nuevamente en una cadena más adelante, no finaliza la cadena antes (como en mi variable stringThing ).

El uso más común que he visto para \ en cadenas es en caracteres de terminación de cadena. En este caso, se crearon los caracteres " . Escape " para que las personas y las computadoras pudieran determinar si el carácter existía dentro de la cadena o no.

NOTA si fuera a console.log su variable myObj_serialized , vería que la salida no muestra \" . Esto respalda el punto de que \ no existe realmente en la cadena cuando está en la memoria.

Esta es una leve simplificación excesiva del propósito y el uso de caracteres escapados, pero puede estar seguro de que eliminar \ de sus objetos almacenados sería un error, y cuando analice ese valor nuevamente en la memoria, ni siquiera sabrá que eran allí en primer lugar.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda