Então, neste post, definiremos os termos "Passam por valor" e "Passe por referência" junto com exemplos em JavaScript, além de explicar as diferenças entre os dois.
O que é o valor por passes?
Uma função é chamada diretamente enviando o valor da variável como um argumento se essa função for um valor passante. Como resultado, quaisquer alterações feitas na função não têm impacto no valor inicial ou original. O valor original não é alterado porque, quando passamos a variável em uma função como um argumento, a cópia dessa variável é criada e, portanto, quaisquer alterações ou operações executadas dentro dessa função são feitas na variável de cópia, em vez da original.
Passe por exemplo de valor
Vamos criar uma função com o nome de passbyValue e alterar os valores das variáveis a e b que são passados como argumentos nesta função. Fora da função, inicializamos as variáveis A e B e damos 1 e 2 valores, respectivamente. Então console em registrar esses valores.
função passbyvalue (a, b)Veremos que, quando consolarmos registrar os valores de A e B fora da função, ele dirá 1 e 2. No entanto, dentro da função, os valores serão 3 e 4 e novamente depois de chamar essa função, os valores não mudarão, pois dentro das cópias de função foram feitas de A e B e foram feitas alterações nessas cópias.
O que é referência?
Uma função é chamada fornecendo a referência/endereço da variável como um parâmetro em referência passada. Como resultado, modificar o valor dentro da função também modifica o valor fora da função que é o valor original. O recurso de referência por referência é usado em matrizes e objetos JavaScript.
Passe por exemplo de referência
Vamos inicializar um objeto e dar duas propriedades a ele. Uma propriedade define o nome da máquina e a outra “ISON”O que nos permite saber se a máquina está ligada ou não. Também inicializamos uma função com o nome de passbyReference e altere o valor das propriedades do objeto de computador, como nome e ison. Em seguida, consolamos essas propriedades antes e depois de chamar a função:
função passbyReference (máquina)Podemos ver que as cópias não foram feitas na função e as propriedades originais do objeto de computador foram alteradas; portanto, é passado por referência.
Diferença entre passe por valor e passagem por referência
A principal diferença entre passe por valor e passagem por referência é que o passe por referência entra em jogo quando atribuímos primitivos e passam por valor entra em jogo quando atribuímos objetos. Os tipos de dados primitivos incluem números de string, boolean, símbolos e valores como nulo e indefinido, e os tipos de dados de objeto incluem funções, matrizes e objetos simples.
A segunda grande diferença entre os dois é que o valor por um valor cria uma cópia e, em seguida, são feitas alterações nessa cópia; No entanto, na referência, nenhuma cópia é feita e a modificação é feita na variável original.
Conclusão
Podemos passar valores para uma função via passagem por valor ou passagem por referência. A passagem por valor é feita nos tipos de dados primitivos, como string, número, booleano, e toda vez que você passa uma variável para uma função, ela cria uma cópia dessa variável e depois modifica essa copia em um passe por valor. Pass por referência é feito no tipo de dados do objeto, como funções, matrizes e objetos simples e, no passe por referência, o valor original é modificado como passagem por referência não cria uma cópia.
Neste post, primeiro, vimos o que é o passe por valor e passar por referência é e explicamos os fenômenos com a ajuda de um exemplo e depois continuamos nossa discussão, respondendo à pergunta de qual é a diferença entre passar por valor e passar por Referência em JavaScript.