Skip to content

Commit 049b22e

Browse files
authored
Merge pull request #8396 from Zunigaj1101/main
2 parents 14c6d80 + 29cd78d commit 049b22e

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// Ejemplo de asignación "por valor"
2+
let a = 10;
3+
let b = a; // Se copia el valor de 'a' en 'b'
4+
b = 20; // Cambiar 'b' no afecta a 'a'
5+
6+
console.log("Por valor:");
7+
console.log("a:", a); // 10
8+
console.log("b:", b); // 20
9+
10+
// Ejemplo de asignación "por referencia"
11+
let obj1 = { value: 10 };
12+
let obj2 = obj1; // Se copia la referencia de 'obj1' en 'obj2'
13+
obj2.value = 20; // Cambiar 'obj2.value' afecta a 'obj1.value'
14+
15+
console.log("\nPor referencia:");
16+
console.log("obj1:", obj1); // { value: 20 }
17+
console.log("obj2:", obj2); // { value: 20 }
18+
19+
20+
// Función con parámetros pasados "por valor"
21+
function modifyValue(x) {
22+
x = x * 2; // Esto no afecta a la variable original
23+
console.log("Dentro de modifyValue:", x);
24+
}
25+
26+
let num = 5;
27+
modifyValue(num);
28+
console.log("Después de modifyValue:", num); // 5
29+
30+
// Función con parámetros pasados "por referencia"
31+
function modifyReference(obj) {
32+
obj.value = obj.value * 2; // Esto modifica el objeto original
33+
console.log("Dentro de modifyReference:", obj);
34+
}
35+
36+
let myObj = { value: 5 };
37+
modifyReference(myObj);
38+
console.log("Después de modifyReference:", myObj); // { value: 10 }
39+
40+
/// Dificultad extra
41+
function swapByValues (a,b) {
42+
return [b, a]
43+
}
44+
45+
function swapByreference (a, b) {
46+
let temp = a.value
47+
a.value = b.value
48+
b.value = temp
49+
}
50+
51+
let value1 = 5; let value2 = 10
52+
53+
let [newValue1, newValue2] = swapByValues(value1, value2)
54+
console.log (`\nVariables por valor:`)
55+
console.log (`valores orginales: ${value1}, ${value2}`)
56+
console.log (`Nuevos valores: ${newValue1}, ${newValue2}`)
57+
58+
let myObj1 = {value: 5}; let myObj2 = {value: 10}
59+
console.log (`\nVariables por referencia:`)
60+
console.log (`referencias originales: ${myObj1.value}, ${myObj2.value}`)
61+
swapByreference (myObj1, myObj2)
62+
console.log (`referencias cambiadas: ${myObj1.value}, ${myObj2.value}`)
63+

0 commit comments

Comments
 (0)