Skip to content

Commit 1798e67

Browse files
authored
Merge pull request mouredev#7061 from wapastorv/main
#5 - Javascript y #6 - Javascript
2 parents 291b090 + e2294c1 commit 1798e67

File tree

2 files changed

+116
-0
lines changed

2 files changed

+116
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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 variables anteriormente.
11+
* - Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
12+
* Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno
13+
* se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las
14+
* variables originales y las nuevas, comprobando que se ha invertido su valor en las segundas.
15+
* Comprueba también que se ha conservado el valor original en las primeras.
16+
*/
17+
18+
// Por valor
19+
var a = 1;
20+
var b = a;
21+
b = 2;
22+
console.log(a); // 1
23+
console.log(b); // 2
24+
25+
// Por referencia
26+
var obj1 = { name: 'John' };
27+
var obj2 = obj1;
28+
obj2.name = 'Jane';
29+
console.log(obj1.name); // Jane
30+
console.log(obj2.name); // Jane
31+
32+
// Por valor
33+
function addOne(num) {
34+
num++;
35+
}
36+
var num = 1;
37+
addOne(num); // num es pasado por valor
38+
console.log(num); // 1
39+
40+
// Por referencia
41+
function changeName(obj) {
42+
obj.name = 'Jane';
43+
}
44+
var obj = { name: 'John' };
45+
changeName(obj); // obj es pasado por referencia
46+
console.log(obj.name); // Jane
47+
48+
// DIFICULTAD EXTRA
49+
function swapByValue(a, b) {
50+
var temp = a;
51+
a = b;
52+
b = temp;
53+
return [a, b];
54+
}
55+
56+
function swapByReference(obj1, obj2) {
57+
var temp = obj1.name;
58+
obj1.name = obj2.name;
59+
obj2.name = temp;
60+
return [obj1, obj2];
61+
}
62+
63+
var a = 1;
64+
var b = 2;
65+
var obj1 = { name: 'John' };
66+
var obj2 = { name: 'Jane' };
67+
68+
var swappedValues = swapByValue(a, b);
69+
var swappedReferences = swapByReference(obj1, obj2);
70+
71+
console.log(a); // 1
72+
console.log(b); // 2
73+
console.log(swappedValues[0]); // 2
74+
console.log(swappedValues[1]); // 1
75+
76+
console.log(obj1.name); // Jane
77+
console.log(obj2.name); // John
78+
console.log(swappedReferences[0].name); // John
79+
console.log(swappedReferences[1].name); // Jane
80+
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* EJERCICIO:
3+
* Entiende el concepto de recursividad creando una función recursiva que imprima
4+
* números del 100 al 0.
5+
*/
6+
7+
/*function printNumbers(n) {
8+
if (n >= 0) {
9+
console.log(n);
10+
printNumbers(n - 1);
11+
}
12+
}
13+
14+
printNumbers(100);*/
15+
16+
// factorial de un número especificado
17+
/*function factorial(n) {
18+
if (n === 0) {
19+
return 1;
20+
}
21+
22+
return n * factorial(n - 1);
23+
}
24+
25+
console.log(factorial(5)); // 120*/
26+
27+
// Secuencia de fibonacci de un número especificado
28+
function fibonacci (n) {
29+
if (n <= 1) {
30+
return n;
31+
}
32+
33+
return fibonacci(n - 1) + fibonacci(n - 2);
34+
}
35+
36+
console.log(fibonacci(6)); // 8

0 commit comments

Comments
 (0)