"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Valores JavaScript versus referência

Valores JavaScript versus referência

Publicado em 31/07/2024
Navegar:745

JavaScript values vs reference

Entenda como as variáveis ​​são mantidas em JavaScript: como valores ou referências

Em JavaScript, ou melhor, programação, uma variável é um local na memória de um computador usado para armazenar dados. As variáveis ​​são declaradas (recebem um nome, um identificador) e podem receber um valor imediatamente ou mais tarde, dependendo do idioma. Esta variável pode então ser referida posteriormente no programa, em vez de declarar explicitamente o mesmo valor novamente.

Em JavaScript, os dados são transmitidos na forma de valores, esses valores podem ser valores primitivos ou de objeto. Como desenvolvedor de JavaScript, entender como o JavaScript lida com os dados é crucial para ter noções básicas da linguagem.

Os valores primitivos incluem:

  • cordas.
  • números.
  • booleanos.
  • BigInt.
  • Símbolo.
  • Indefinido.

Os valores do objeto, por outro lado, são:

  • matrizes.
  • funções.
  • objetos.

Esses tipos de valor se comportam de maneira diferente quando são repassados, considere o snippet abaixo:

var meuNome = "Fred";
var outroNome = meuNome;
meuNome = "Ashley";
console.log(meuNome); // Ashley
console.log(outroNome); //Fred

Observe que otherName permaneceu o mesmo, embora pareça uma "cópia" de myName. Na realidade, o que realmente aconteceu é que quando otherName foi atribuído a myName, ele não foi atribuído como uma cópia da string "Fred", mas sim uma nova string "Fred" foi criada. Portanto, não há ligação direta entre myName e otherName. É assim que o JavaScript transmite valores primitivos.

Os valores dos objetos são tratados de maneira diferente, dê uma olhada no snippet abaixo:

var meuObj = {cor: "vermelho"};
var outroObj = meuObj;
meuObj.color = "azul";
console.log(meuObj.color); //azul
console.log(outroObj.color); //azul

Aqui, um objeto foi criado e atribuído a myObj, que foi então atribuído a otherObj, veja como as propriedades de cor otherObj e myObj foram alteradas apenas alterando a propriedade de cor de myObj. Isso ocorre porque os valores dos objetos são passados ​​como referências. myObj não se refere diretamente ao objeto, ele aponta para sua referência, otherObj é então atribuído a myObj, que é uma referência ao objeto real. Assim, ambas as variáveis ​​estão vinculadas ao mesmo objeto porque apontam para a mesma referência, uma mudança em uma afeta a outra.

É por isso que a comparação (===) de dois objetos retorna diretamente falso, você está literalmente comparando duas referências diferentes. Aqui, myObj === otherObj retorna true porque estamos comparando as mesmas referências.

Espero que isso lhe dê uma nova perspectiva de como o JavaScript funciona nos bastidores.

Até então, fique livre de bugs.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/js_cipher/javascript-values-vs-reference-1ao5?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

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