Objetos e console.log: uma estranheza desvendada
Ao trabalhar com objetos e console.log, você pode encontrar comportamento peculiar. Vamos desvendar esse mistério analisando este snippet de código:
foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ]; console.log('foo1', foo, foo.length); foo.splice(2, 1); console.log('foo2', foo, foo.length);
No Chrome, isso produz a saída inesperada:
foo1 [Object, Object, Object, Object, Object] 5 0: Object 1: Object 2: Object 3: Object length: 4 __proto__: Array[0] 5 (index):23 foo2 [Object, Object, Object, Object] 4 0: Object 1: Object 2: Object 3: Object length: 4 __proto__: Array[0]
O exame assíncrono
A chave para entender esse comportamento está na natureza assíncrona do exame de objetos via console.log. Embora o console receba uma referência ao objeto de maneira síncrona, ele não exibe suas propriedades até você expandi -lo manualmente. Isso ocorre de forma assíncrona, levando à saída aparentemente ilógica. Console.log (obj.foo, obj.bar, obj.baz);)
json cody: transformar o objeto em uma string usando json.stringify (obj)
use a reter um realizado a jato e jates a jerost cópias e a string de profundidade:
de profundidade:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3