Skip to content

Commit e5cceb8

Browse files
#5 - javascript
1 parent 844f646 commit e5cceb8

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+
const a = 10;
22+
23+
const modificandoCopia = (a) => a = 30;
24+
25+
26+
modificandoCopia(a);
27+
28+
console.log(a);
29+
30+
const p = {
31+
nombre: 'Teseo'
32+
}
33+
34+
const modificandoReferencia = (p) => p.nombre = 'Egeo';
35+
36+
modificandoReferencia(p);
37+
38+
console.log(p);
39+
40+
41+
const edad = 25;
42+
const nombre = 'Caterina';
43+
44+
const intercambioValores = (a, b) => {
45+
let valorA = a;
46+
47+
a = b;
48+
b = valorA;
49+
50+
return {a, b}
51+
}
52+
53+
const {a: edad2, b: nombre2} = intercambioValores(edad, nombre);
54+
55+
console.log('antes:', edad, nombre);
56+
console.log('después:', edad2, nombre2);
57+
58+
const obj1 = { nombre: 'John B.'}
59+
const obj2 = { nombre: 'Ada Lovelace'}
60+
const intercambioReferencias = (obj1, obj2) => {
61+
62+
let temp = obj1;
63+
obj1 = obj2;
64+
obj2 = temp;
65+
66+
return {obj1, obj2}
67+
}
68+
69+
const {obj1: obj1Interchanged, obj2: obj2Interchanged} = intercambioReferencias(obj1, obj2);
70+
71+
console.log('originales');
72+
console.log(obj1);
73+
console.log(obj2);
74+
console.log('intercambiados');
75+
console.log(obj1Interchanged);
76+
console.log(obj2Interchanged);

0 commit comments

Comments
 (0)