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:
Os valores do objeto, por outro lado, são:
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.
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