Skip to content

Commit f2d71cc

Browse files
authored
Merge pull request mouredev#4907 from andyfg0289/main
#2 - javascript
2 parents 19f1a62 + 492ad21 commit f2d71cc

File tree

1 file changed

+247
-0
lines changed

1 file changed

+247
-0
lines changed
Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
/*
2+
* EJERCICIO:
3+
* - Crea ejemplos de funciones básicas que representen las diferentes
4+
* posibilidades del lenguaje:
5+
* Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
6+
* - Comprueba si puedes crear funciones dentro de funciones.
7+
* - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
8+
* - Pon a prueba el concepto de variable LOCAL y GLOBAL.
9+
* - Debes hacer print por consola del resultado de todos los ejemplos.
10+
* (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
11+
*
12+
* DIFICULTAD EXTRA (opcional):
13+
* Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
14+
* - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
15+
* - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
16+
* - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
17+
* - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
18+
* - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
19+
*
20+
* Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
21+
* Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
22+
*/
23+
24+
//Función básica. declarando una función
25+
let nombre = 'Andy Fernandez';
26+
let edad = 35;
27+
var color = 'rojo';
28+
let objetos = {
29+
coche: 'deportivo',
30+
estancia: 'Motel',
31+
dolares: 200
32+
}
33+
34+
function identidad(nombreCompleto, edad) {
35+
return `El usuario se llama ${nombreCompleto} y tiene ${edad} años de edad`;
36+
}
37+
38+
console.log(identidad(nombre, edad));
39+
console.log('\n');
40+
41+
function cambioIdentidad(nombreCompleto, edad, color) {
42+
//Solo modifica los datos de las variables de forma local
43+
nombreCompleto = 'Martin Pérez';
44+
edad = 25;
45+
color = 'verde';
46+
return `El usuario se llama ${nombreCompleto} y tiene ${edad} años de edad y le gusta el color ${color}`;
47+
48+
}
49+
50+
console.log(cambioIdentidad(nombre, edad, color));//El usuario se llama Martin Pérez y tiene 25 años de edad
51+
console.log(`El usuario se llama realmente ${nombre}y tiene ${edad} años de edad`);
52+
console.log('\n');
53+
54+
function masDatos(datos) {
55+
this.dolares = 100;
56+
57+
return `El usuario maneja un ${datos.coche} y se esta quedando en un ${datos.estancia} de ${this.dolares} dólares`;
58+
}
59+
60+
console.log(masDatos(objetos));
61+
62+
//console.log(`El usuario evito pagar un ${datos.estancia} de ${datos.dolares} de renta`);// Solo se puede acceder a datos desde la funcion masDatos
63+
console.log(`El usuario evito pagar un ${objetos.estancia} de ${objetos.dolares} dólares de renta`);
64+
console.log('\n');
65+
66+
/////Expresiones function
67+
68+
const mayorDedad = function (edad) {
69+
if (edad < 18) {
70+
return 'Eres menor de edad';
71+
} else {
72+
return 'Eres mayor de edad';
73+
}
74+
}
75+
76+
console.log(mayorDedad(edad));//eres mayor de edad
77+
78+
///Expresión función con nombre
79+
80+
81+
const hacerMayor = function menor(edad) {
82+
if (edad <= 18) {
83+
84+
edad = menor(edad + 1);
85+
}
86+
return edad;
87+
}
88+
89+
console.log("Te hiciste mayor ahora tienes " + hacerMayor(9) + "años de edad.");
90+
console.log('\n');
91+
92+
//Función que recibe como parámetro otra función
93+
94+
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
95+
96+
function fun(x) {
97+
return x * 2;
98+
}
99+
100+
function map(f, a) {
101+
let result = [];
102+
for (let i = 0; i < a.length; i++) {
103+
result[i] = f(a[i]);
104+
}
105+
return result
106+
107+
}
108+
109+
console.log(map(fun, array));//(9) [2, 4, 6, 8, 10, 12, 14, 16, 18]
110+
111+
// Recursividad
112+
113+
let access = false;
114+
let pass = 123456;
115+
let keys = 3;
116+
117+
function checkUser() {
118+
let password = prompt("Introduce el password");
119+
if (pass == password && password !== "" && keys >= 0) {
120+
access = true;
121+
console.log("Puedes acceder");
122+
alert("Puedes acceder");
123+
} else if (keys === 0) {
124+
console.log("Agotado el máximo de intentos, vuelva a intentarlo más tarde");
125+
return alert("Agotado el máximo de intentos, vuelva a intentarlo más tarde");
126+
} else {
127+
alert("Password incorrecto");
128+
console.log("Acceso denegado, Password incorrecto");
129+
keys--;
130+
console.log(keys);
131+
checkUser();
132+
}
133+
}
134+
//DESCOMENTAR PARA PROGAR EL CODIGO
135+
//checkUser();
136+
137+
//Ambito con funcion anidada
138+
139+
function getData() {
140+
141+
let yob = 1989;
142+
143+
function tellme() {
144+
return nombre + " tiene " + edad + " años y nació en " + yob;
145+
}
146+
return tellme()
147+
}
148+
149+
console.log(getData());//Andy Fernández tiene 35 y nació en1989
150+
console.log('\n');
151+
152+
function getName(name) {
153+
function getAge(age) {
154+
return name + " " + age;
155+
}
156+
return getAge;
157+
}
158+
159+
giveName = getName(nombre);//Aqui definimos name con el valor nombre
160+
giveAge = giveName(edad); //Aqui ya que name = nombre por lo tanto age = edad
161+
162+
console.log(giveAge);// Andy Fernández 35
163+
console.log(getName(nombre)(edad));// Andy Fernández 35
164+
console.log('\n');
165+
166+
//Funciones multianidadas
167+
168+
function salario(num1) {
169+
let clave = 123;
170+
//console.log(clave2);// Da error ya que no se puede acceder a la funcion interna de vacaciones()
171+
function vacaciones(num2) {//permanece privado para salario
172+
let clave2 = 456;
173+
// console.log(clave3);// Da error ya que no se puede acceder a la funcion interna de tiempoExtra()
174+
console.log(clave)// Puede acceder a salario ya que tiene un cierre con este
175+
function tiempoExtra(num3) {//permanece privado para salario y vacaciones
176+
console.log(clave)// 123 // Si puede acceder a las variables de funciones exteriores ya que crea un cierre de vacaciones y salario
177+
console.log(clave2)// 456
178+
let clave3 = 789;
179+
console.log(num1 + num2 + num3);
180+
}
181+
tiempoExtra(3);
182+
}
183+
vacaciones(2);
184+
}
185+
salario(1); //6
186+
187+
//Funciones con parámetros predeterminados
188+
189+
let phone;
190+
191+
function tellPhone(number = 911) {
192+
return number;
193+
}
194+
195+
console.log(tellPhone());
196+
197+
//Funciones con parámetros rest
198+
199+
function resto(resto, ...numbers) {
200+
return numbers.map((n) => resto - n);
201+
}
202+
203+
let num = resto(10, 5, 4, 2);//A 10 le vamos restando numbers en cada caso
204+
console.log(num);// [5,6,8]
205+
206+
//Funciones flecha
207+
208+
const saludo = ((nombre, edad) => {
209+
console.log(`Hola ${nombre} de ${edad} años.`)
210+
})
211+
212+
saludo(nombre, edad);
213+
214+
//Ejemplo de función ya creada en el lenguaje
215+
const float = 12.4;
216+
217+
console.log(parseFloat(float));//12.4
218+
219+
/* * DIFICULTAD EXTRA (opcional):
220+
* Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
221+
* - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
222+
* - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
223+
* - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
224+
* - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
225+
* - La función retorna el número de veces que se ha impreso el número en lugar de los textos. */
226+
227+
function numCounter(cadena1, cadena2) {
228+
let count = 0;
229+
for (let i = 1; i <= 100; i++) {
230+
if (i % 3 === 0 && i % 5 === 0) {
231+
console.log(i + ' ' + cadena1 + ' y ' + cadena2);
232+
} else {
233+
if (i % 3 === 0) {
234+
console.log(i + ' ' + cadena1);
235+
} else if (i % 5 === 0) {
236+
console.log(i + ' ' + cadena2);
237+
} else {
238+
count++;
239+
console.log(i + ' ' + count);
240+
241+
}
242+
}
243+
}
244+
return count;
245+
}
246+
247+
console.log(numCounter('es múltiplo de 3', 'es múltiplo de 5'));

0 commit comments

Comments
 (0)