¿Cuál es la diferencia entre pasar por valor y pasar por referencia en JavaScript??

¿Cuál es la diferencia entre pasar por valor y pasar por referencia en JavaScript??
JavaScript es un lenguaje de programación que brinda a nuestras aplicaciones web y páginas web la capacidad de pensar y actuar haciéndolo interactivo y dinámico. Al igual que cualquier otro lenguaje de programación, JavaScript nos ofrece funciones que son un conjunto de comandos o declaraciones definidas que se ejecutan solo cuando llamamos a la función que tiene este código. La función toma una entrada o algunos argumentos y devuelve la salida. Los argumentos de entrada se pueden pasar por valor o referencia.

Entonces, en esta publicación, definiremos los términos "aprobar por valor" y "aprobar por referencia" junto con ejemplos en JavaScript, así como explicaremos las diferencias entre los dos.

¿Qué es pasar por valor??

Una función se llama directamente enviando el valor de la variable como argumento si esa función es de paso por paso. Como resultado, cualquier cambio realizado dentro de la función no tiene impacto en el valor inicial u original. El valor original no se cambia porque cuando pasamos la variable a una función como argumento, se crea la copia de esa variable y, por lo tanto, cualquier cambio u operación realizado dentro de esa función se realiza en la variable de copia en lugar de la original.

Pase por ejemplo de valor

Creemos una función con el nombre de valor de pass y cambiar los valores de las variables a y b que se pasan como argumentos en esta función. Fuera de la función, inicializamos las variables A y B y les damos 1 y 2 valores respectivamente. Luego consolamos registrar estos valores.

función passByValue (a, b)
a = 3;
b = 4;
consola.log ("dentro de la función")
consola.log ("a:", a, "b:", b); // 3, 4

Sea a = 1;
Sea B = 2;
consola.Log ("Función externa. Antes de llamar a la función ");
consola.log ("a:", a, "b:", b); // 1,2
Valor de passby (a, b);
consola.Log ("Función externa. Después de llamar a la función ");
consola.log ("a:", a, "b:", b); // 1,2

Veremos que cuando consolemos registrar los valores de A y B fuera de la función, dirá 1 y 2. Sin embargo, dentro de la función, los valores serán de 3 y 4 y nuevamente después de llamar a esta función, los valores no cambiarán como se hicieron copias de la función de A y B y se hicieron cambios en esas copias.

¿Qué es pasar por referencia??

Se llama a una función suministrando la referencia/dirección de la variable como un parámetro en Referencia de aprobación. Como resultado, modificar el valor dentro de la función también modifica el valor fuera de la función que es el valor original. La función de pasar por referencia se usa en matrices y objetos de JavaScript.

Pase por ejemplo de referencia

Inicializar un objeto y darle dos propiedades. Una propiedad define el nombre de la máquina y la otra "Está encendido"Lo que nos permite saber si la máquina está encendida o no. También inicializamos una función con el nombre de referencia de passby y cambiar el valor de las propiedades del objeto de la computadora como el nombre e ison. Luego consolamos registrar estas propiedades antes y después de llamar a la función:

función passByReference (máquina)
máquina.nombre = "computadora";
máquina.ison = verdadero;

VAR Computer =
Nombre: "MyComputer",
ISON: FALSO
;
consola.log ("antes de llamar a la función");
consola.Registro (computadora.Está encendido); // verdadero;
consola.Registro (computadora.nombre); // Computadora
passByReference (computadora);
consola.log ("después de llamar a la función");
consola.Registro (computadora.Está encendido); // verdadero;
consola.Registro (computadora.nombre); // Computadora

Podemos ver que las copias no estaban hechas en la función y las propiedades originales del objeto de la computadora se cambiaron, por lo tanto, se pasa por referencia.

Diferencia entre pase por valor y pase por referencia

La principal diferencia entre Pass by Value y Pass por referencia es que Pass por referencia entra en juego cuando asignamos primitivas y pase por valor entra en juego cuando asignamos objetos. Los tipos de datos primitivos incluyen números de cadena, booleanos, símbolos y valores como nulo y indefinido, y los tipos de datos de objetos incluyen funciones, matrices y objetos simples.

La segunda diferencia principal entre los dos es que el paso por valor crea una copia y luego se realizan cambios en esa copia; Sin embargo, en el paso por referencia no se realiza una copia y se realiza la modificación en la variable original.

Conclusión

Podemos pasar los valores a una función a través de Pass by Value o Pass por referencia. Pass by Value se realiza en los tipos de datos primitivos como cadena, número, booleano, y cada vez que pasa una variable a una función, crea una copia de esa variable y luego modifica esa copia en un valor de pase por valor. Pase por referencia se realiza en el tipo de datos de objeto, como funciones, matrices y objetos simples, y en la referencia de pasar por referencia, el valor original se modifica como pase por referencia no crea una copia.

En esta publicación, primero, vimos qué pase por valor es y pase por referencia es y explicamos tanto los fenómenos con la ayuda de un ejemplo y luego continuamos nuestra discusión respondiendo la pregunta de cuál es la diferencia entre el valor por el valor y el paso de Referencia en JavaScript.