Skip to content

Commit bd13a04

Browse files
authored
#5 - Javascript
1 parent 23b248a commit bd13a04

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
* EJERCICIO:
3+
* - Muestra ejemplos de asignación de variables "por valor" y "por referencia", según
4+
* su tipo de dato.
5+
* - Muestra ejemplos de funciones con variables que se les pasan "por valor" y
6+
* "por referencia", y cómo se comportan en cada caso en el momento de ser modificadas.
7+
* (Entender estos conceptos es algo esencial en la gran mayoría de lenguajes)
8+
*
9+
* DIFICULTAD EXTRA (opcional):
10+
* Crea dos programas que reciban dos parámetros (cada uno) definidos como
11+
* variables anteriormente.
12+
* - Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
13+
* Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno
14+
* se asigna a dos variables diferentes a las originales. A continuación, imprime
15+
* el valor de las variables originales y las nuevas, comprobando que se ha invertido
16+
* su valor en las segundas.
17+
* Comprueba también que se ha conservado el valor original en las primeras.
18+
*/
19+
20+
/*
21+
Cuando hablamos de pasar una variable por valor y por referencia en JavaScript nos referimos a pasar una variable usando un valor primitivo o un valor no primitivo. Entonces, pasar una variable por valor se refiere a asignarle uno de los siete elementos con valores primitivos de JavaScript. Por su parte, pasar una variable por referencia quiere decir que estamos asignándole un elemento con un valor no primitivo, sea un objeto, un array o una función.
22+
La diferencia entre pasar una variable por valor y por referencia en JavaScript es su relación con lo que sucede dentro y fuera de la función. Cuando pasamos una reference variable javascript, lo que «ocurre» dentro de la función «repercute» fuera de ella. Mientras tanto, cuando pasamos una variable por valor, lo que «ocurre» dentro de la función, «se queda» en la función, sin alterar el resto del código.
23+
*/
24+
25+
// Pasamos por valor, con valores primitivos
26+
27+
let num1 = 15;
28+
let arr1 = [1,2,3,4];
29+
30+
function pasoValor(num) {
31+
console.log(`Dentro de la función ${num} es ${num * 2}`);
32+
}
33+
34+
pasoValor(num1);
35+
console.log(`Fuera de la función es: ${num1} el valor original no se modifica.`);
36+
37+
function pasoReferencia(arr) {
38+
arr.push(5);
39+
console.log(`Dentro de la función ${arr}`);
40+
}
41+
42+
console.log(`Antes de pasarlo ${arr1} por la función.`)
43+
pasoReferencia(arr1);
44+
console.log(`Fuera de la función ${arr1} el valor original se ha modificado.`);
45+
46+
// Extra =================
47+
48+
let num2 = 10;
49+
let num3 = 20;
50+
51+
let arr2 = [0,1,2];
52+
let arr3 = ["Sergio", "Vero"];
53+
54+
function pasoPorValor(num1, num2){
55+
let numA = num1;
56+
num2 = num1;
57+
num2 = numA;
58+
return[num1, num2];
59+
60+
}
61+
console.log("Valores despues de la función por valor");
62+
console.log(pasoPorValor(num2, num3));
63+
console.log("Valores originales:")
64+
console.log(num2, num3);
65+
66+
function pasoPorReferencia(arr1, arr2){
67+
let arrA = arr1;
68+
arr2 = arr1;
69+
arr2 = arrA;
70+
return arrA;
71+
}
72+
73+
console.log("Valores despues de la función por referencia");
74+
console.log(pasoPorReferencia(arr2, arr3));
75+
console.log("Valores originales:")
76+
console.log(arr2, arr3);

0 commit comments

Comments
 (0)