Skip to content

Commit 0e142b7

Browse files
authored
Merge pull request mouredev#7575 from DobleDJ/roadmap-05
#5 - Javascript
2 parents baa8b0f + 27a8249 commit 0e142b7

File tree

1 file changed

+118
-0
lines changed
  • Roadmap/05 - VALOR Y REFERENCIA/javascript

1 file changed

+118
-0
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/** #05 - javaScript VALOR Y REFERENCIA
2+
* Date: 03/01/2025
3+
* Author: Yoandy Doble Herrera
4+
*/
5+
6+
/*
7+
EJERCICIO:
8+
- Muestra ejemplos de asignación de variables "por valor" y "por referencia" según su tipo de dato.
9+
- Muestra ejemplos de funciones con variables que se les pasan "por valor" y "por referencia", y cómo se comportan en cada caso en el momento de ser modificadas. (Entender estos conceptos es algo esencial en la gran mayoría de lenguajes)
10+
11+
DIFICULTAD EXTRA (opcional):
12+
Crea dos programas que reciban dos parámetros (cada uno) definidos como variables anteriormente.
13+
- Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
14+
Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las 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+
/* Asignación por valor */
19+
let usuario = "codebydoble"
20+
const distancia = 10000
21+
let userCopy = "@" + usuario
22+
23+
console.log(usuario)
24+
console.log(distancia)
25+
console.log(userCopy)
26+
27+
/* Asignación de variables por referencia */
28+
29+
const librosTech = ["De 0 a Experto", "Github ++", "100 Horas de código", "Javascript Eloquent"]
30+
const personalBook = librosTech
31+
32+
librosTech.push("Mouredev la guía definitiva") // se actualiza en ambos array
33+
console.log(librosTech)
34+
console.log(personalBook)
35+
36+
/* Funciones con valores primitivos */
37+
38+
/**
39+
* Simula un juego
40+
* @param {number} participantes Númeto total de participantes en el juego
41+
* @returns Retorna la cantidad de participantes
42+
*/
43+
const game = (participantes) => {
44+
participantes = 100
45+
return `El juego cuenta con: ${participantes} atletas`
46+
}
47+
48+
let atletas = 200
49+
console.log(game(atletas)) //Le juego cuenta con 100 atletas
50+
console.log(atletas) //200
51+
52+
/* Funciones con valores no primitivos */
53+
54+
/**
55+
* Lista de series de TV
56+
* @param {Array} arr Array lista de series de TV
57+
* @returns Retorna la lista de series televisivas
58+
*/
59+
const seriesTV = (arr) => {
60+
const arrCopy = [...arr]
61+
const results = []
62+
for (let index = 0; index < arrCopy.length; index++) {
63+
results.push(arrCopy.shift())
64+
}
65+
return results
66+
}
67+
const misSeries = ["X Files", "24 Hours", "La que se avecina", "Bleach", "Big Bang Theory"]
68+
seriesTV(misSeries)
69+
console.log(misSeries) // ["X Files", "24 Hours", "La que se avecina", "Bleach", "Big Bang Theory"]
70+
71+
/* DIFICULTAD EXTRA */
72+
/**
73+
* DIFICULTAD EXTRA (opcional):
74+
Crea dos programas que reciban dos parámetros (cada uno) definidos como variables anteriormente.
75+
- Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
76+
Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las variables originales y las nuevas, comprobando que se ha invertido su valor en las segundas.
77+
Comprueba también que se ha conservado el valor original en las primeras.
78+
*/
79+
80+
// Función con dos parámetros por valor
81+
/**
82+
* Intercambia dos valores
83+
* @param {number} paramOne Any number
84+
* @param {number} paramTwo Any number
85+
* @returns Retorna un array con los valores intercambiados
86+
*/
87+
function programOne(paramOne, paramTwo) {
88+
let temp = paramOne
89+
paramOne = paramTwo
90+
paramTwo = temp
91+
return [paramOne, paramTwo]
92+
}
93+
94+
let paramOne = 10
95+
let paramTwo = 20
96+
97+
let switchOne
98+
let switchTwo
99+
;[switchOne, switchTwo] = programOne(paramOne, paramTwo)
100+
101+
console.log(`Parámetros iniciales: Primer valor ${paramOne}, Segundo Valor ${paramTwo}`)
102+
103+
console.log(`Parámetros intercambiados: Primer valor ${switchOne}, Segundo Valor ${switchTwo}`)
104+
105+
// Función con dos parámetros por referencia
106+
function programTwo(arrOne, arrTwo) {
107+
const temp = arrOne
108+
arrOne = arrTwo
109+
arrTwo = temp
110+
return { arrOne, arrTwo }
111+
}
112+
113+
const laptop = ["Apple", "Dell", "HP", "Lenovo", "Asus"]
114+
const phone = ["Samsung", "Apple", "Xiaomi", "OnePlus", "Huawei"]
115+
116+
let { arrOne: firstArr, arrTwo: secondArr } = programTwo(laptop, phone)
117+
console.log(`Parámetros iniciales -> uno: ${laptop}, dos: ${phone}`)
118+
console.log(`Parámetros Intercambiados -> uno: ${firstArr}, dos: ${secondArr}`)

0 commit comments

Comments
 (0)