Olá leitor,
Vou explicar a questão da codificação da entrevista em javascript. Como funciona o compilador javascript e o que ele realmente produz como saída.
Vou detalhar cada parte da saída, explicar por que ela aparece dessa forma e conectá-la de volta às linhas específicas de código responsáveis
let a = {}; let b = { key: 'b' }; let c = { key: 'c' }; a[b] = 123; a[c] = 456; console.log(a[b])
Antes de nos aprofundarmos nos detalhes, reserve um momento para dar uma olhada neste trecho de código. Tente adivinhar qual será o resultado com base em seu entendimento atual. Essa abordagem não apenas ajuda a reforçar suas habilidades em JavaScript, mas também torna a explicação a seguir muito mais significativa
"Pense em como o JavaScript processará cada linha. Depois de adivinhar, continue lendo para ver se acertou!"
let a = {};
Acima do código, cria um objeto vazio e atribui à variável 'a'.
let b = { key: 'b' };
Esta linha cria um objeto com uma única chave de propriedade e o valor 'b', e o atribui à variável 'b'.
let c = { key: 'c' };
Esta linha cria um objeto com uma única chave de propriedade e o valor 'c', e o atribui à variável 'c'.
a[b] = 123;
a[b] = 123 Esta linha define uma propriedade do objeto a usando o objeto b como chave. Em JavaScript, quando um objeto é usado como chave em outro objeto, o objeto é primeiro convertido em uma string usando o método toString(). Nesse caso, a representação de string do objeto b é "[objeto Objeto]" . Portanto, a propriedade "[objeto Object]" do objeto a é definida com o valor 123.
a[c] = 456;
Semelhante à etapa anterior, "c" também é um objeto e convertido em string, torna-se ""[objeto Objeto]"".
Portanto, a linha a[c] = 456; é equivalente a "a[object Object]"=456, o que significa que o objeto tem "[object Object]" propriedade e seu valor é 456.
console.log(a[b])
A saída é 456. quando você tenta acessar a propriedade "a[b]", o javascript converte novamente b em string, que é "[objeto Objeto]". Como o objeto possui uma propriedade com a chave "[objeto Objeto]" e seu valor é 456. Portanto, ele imprimirá a saída.
Em resumo, o código demonstra que quando um objeto é usado como chave em outro objeto, o objeto é primeiro convertido em uma representação de string, que é "[objeto Objeto]" por padrão. Isso significa que os objetos b e c são tratados como a mesma chave, e o último valor atribuído a essa chave é aquele que é recuperado.
Espero que esta explicação não apenas tenha esclarecido o código, mas também desperte alguma curiosidade para explorar mais. JavaScript é cheio de surpresas e ferramentas poderosas, e cada peça que você aprende deixa você mais perto de dominá-lo.
Obrigado pela leitura e espero que tenham gostado desta análise! Sinta-se à vontade para compartilhar seus pensamentos, perguntas ou ideias para tópicos futuros nos comentários.
Boa codificação!
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