Skip to content

Commit e825e76

Browse files
authored
Merge pull request mouredev#5876 from fdcorreadev/main
#2-JavaScript
2 parents 93aa5b0 + 33df270 commit e825e76

File tree

1 file changed

+292
-0
lines changed

1 file changed

+292
-0
lines changed
Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
/**
2+
* Funciones en JavaScript se incia con la palabra funcion + nombre + () + {} y dentro de los {} se pone el codigo necesario para
3+
*
4+
* La siguientes funcion es simple
5+
*/
6+
7+
function greet() {
8+
console.log('mi primera impresion por consola dentro de una funcion ¡Hola Mundo!')
9+
}
10+
11+
greet()
12+
13+
/**
14+
* esta funcion tiene un return que hace el proceso dentro y retorna un valor
15+
* @returns el saludo
16+
*/
17+
18+
function return_greet() {
19+
return 'segunda pero retornando un valor ¡Hola Mundo!'
20+
}
21+
22+
console.log(return_greet())
23+
24+
/**
25+
* funcion con solo un parametro
26+
* @param {String} name
27+
* @returns devuele el saludo
28+
*/
29+
function greet_whit_name(name) {
30+
return `Hola soy ${name} y esta es la funcion con un paramtero`
31+
}
32+
33+
console.log(greet_whit_name('Fabian Correa'))
34+
35+
/**
36+
* @param {number} num1
37+
* @param {number} num2
38+
* @returns
39+
* Funcioneas con parametros de entrada en este caso dos valores para que los sume y returna el valor
40+
*/
41+
42+
function sumarValores(num1, num2) {
43+
return num1 + num2
44+
}
45+
const result = sumarValores(4, 8)
46+
console.log('funcion con dos parametros ' + result)
47+
48+
/**
49+
* Funcion con parametros por defecto
50+
* @param {string} name
51+
* @returns
52+
*/
53+
54+
function defaultValue(name = 'Fabian Correa') {
55+
return `Hola soy ${name} y esta es la funcion con parametros por defecto`
56+
}
57+
58+
console.log(defaultValue('jose perez'))
59+
console.log(defaultValue())
60+
61+
/**
62+
* Las funciones tambien se puedes asignar a una variable, o dento de un objeto
63+
* @returns La funcion guaradad
64+
*/
65+
66+
const saveFunction = function greetSave() {
67+
return `Hola yo soy la Funcion Guardada`
68+
}
69+
70+
console.log(saveFunction)
71+
console.log(saveFunction())
72+
73+
//funcion que se puede pasar a otra variable
74+
75+
const otherFunction = saveFunction()
76+
console.log('otra funcion guardada dentro de otra variable ', otherFunction)
77+
78+
79+
80+
//funcion guardad dentro de un objeto
81+
const object = {
82+
methodSave: saveFunction()
83+
}
84+
85+
console.log('funcion dentro de un objeto ', object.methodSave)
86+
87+
//Ejecutar una funncion pasada por parametro a otra funcion
88+
function printOtherFunction(func) {
89+
console.log(`funcion ejecutada por otra funcion ${func()}`)
90+
}
91+
92+
printOtherFunction(saveFunction)
93+
94+
95+
/**
96+
* funcion fecha, funciona de igual forma pero no se utiliza la palabra funcion, se coloca () => {} esta es la forma de hacerlo
97+
*/
98+
99+
const arrowFunction = () => {
100+
return `Hola soy una funcion flecha (arrow Function)`
101+
}
102+
103+
console.log(arrowFunction())
104+
105+
/**
106+
* estan un tipo de funciones que son muy importante en javascript que es el async que define una funcion asincronica el cual devuelve un objeto asyncFunction
107+
* se utiliza la funcion async antes de declararla y cuando esperamos el resultado le ponemos await
108+
*/
109+
110+
function resolveAfter2Seconds(x) {
111+
return new Promise((resolve) => {
112+
setTimeout(() => {
113+
resolve(x)
114+
}, 2000);
115+
});
116+
}
117+
118+
async function add1(x) {
119+
const a = await resolveAfter2Seconds(20);
120+
const b = await resolveAfter2Seconds(30);
121+
const z = x + a + b
122+
return z
123+
}
124+
//la forma de reolverlo es mediante una promesa utilizando la funcion y then, y en caso alguno el finally que sale primero que la respuesta
125+
//por la espera del await
126+
console.log(add1(20))
127+
128+
add1(10).then((res) => {
129+
console.log(`mi primera promesa ${res}`)
130+
}).finally(
131+
console.log('termino la promesa')
132+
)
133+
134+
/**
135+
* funciones dentro de de otra funcion
136+
*
137+
* te muestro un poco como se utiliza el await ya que esta primero la funcion y como sabemos el codigo va de arriba hacia bajo en este caso
138+
* cuando corremos el codigo primero se imprime la condicion que la funcion wait.
139+
*/
140+
141+
142+
const principalFunction = (typeFunction, name) => {
143+
144+
async function wait(name) {
145+
const print = await name;
146+
console.log(`pero tambien te imprimo mi nombre ${print}`)
147+
}
148+
wait(name)
149+
150+
if (typeFunction === "clasica") {
151+
function printName(name) {
152+
console.log(`${name} esto es una funcion clasica`)
153+
}
154+
printName(name)
155+
} else {
156+
const arrowFunction = (name) => {
157+
console.log(`${name} esto es una arrow function`)
158+
}
159+
arrowFunction(name)
160+
}
161+
}
162+
163+
principalFunction('clasica', 'Fabian Correa')
164+
165+
/**
166+
* funciones propias del lengua en este caso de javascript, existen muchas en este ejemplo pongo pocas pero existen demasiadas
167+
* asi que les dejo el enlace para que pueda darle una chequeada https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Functions#funciones_predefinidas
168+
*/
169+
console.log("-----------------------------------------------------------Funciones del lenguaje-------------------------------------------")
170+
const valor = '22'
171+
console.log(`funcion para convertir de text a numero ${parseInt(valor)}`)
172+
console.log(typeof parseInt(valor))
173+
174+
const string = 22
175+
console.log(`funcion para convertir de numero a texto ${string.toString()}`)
176+
console.log(typeof valor.toString())
177+
178+
const text = 'HoLa mUnDo! Fabian correa'
179+
console.log(`pasa texto a mayusculas ${text.toUpperCase()}`)
180+
console.log(`pasa texto a minuscula ${text.toLowerCase()}`)
181+
182+
let separarText = text.split(" ")
183+
console.log('funcion para texto separado ', separarText)
184+
185+
separarText.map((palabra, index) => {
186+
console.log(`palabra ${index} ${palabra}`)
187+
})
188+
189+
190+
/**
191+
* En los leguajes de programacion existen variables globales y locales en javascript tiene esa parte bastante desarrollada, te explico con unos ejemplos
192+
* pero esto es para evitar re declarar o remplazar una variable por eso utilizamos solo let y const, porque "var" es bastante global
193+
*/
194+
195+
console.log('--------------------------GLOBAL Y LOCAL-----------------------------------------------------------------------')
196+
197+
/**
198+
* en este caso la variable var se deja remplazar.
199+
*/
200+
201+
var texto = 'hola'
202+
203+
texto = 'si se puede'
204+
205+
console.log(texto)
206+
207+
// en este caso si porngo otro var con la misma se dej
208+
209+
var texto = 'si deja declarar de nuevo'
210+
211+
/**
212+
* en este caso la variable let tambien se deja remplazar.
213+
*/
214+
215+
let varibaleLet = 'hola'
216+
217+
varibaleLet = 'si se puede'
218+
219+
console.log(texto)
220+
221+
// en el caso se let genera un error al igual que const
222+
// let varibaleLet = 'no se deja declarar de nuevo'
223+
224+
/**
225+
* en este caso la variable const no deja porque hace referencia a constante osea no se modifica debe dar error.
226+
*/
227+
228+
const varibaleConst = 'hola'
229+
230+
// varibaleConst = 'si se puede'
231+
232+
// console.log(texto)
233+
234+
/**
235+
* entonces con esta pequeña explicación vamos entendiendo un poco la declaraciones de global y local scope
236+
* como vemos a continuacion nosotros podemos declarar una variable afuera con el mismo nombre y no se ve afectada la de adentro de la funcion
237+
* pero que pasa si lo hacemos con let
238+
*/
239+
240+
const replaceVariable = 'utilizar variable dento de la funcion'
241+
242+
function variableDeclarar() {
243+
const replaceVariable = 'esta es una variable nueva'
244+
return replaceVariable
245+
}
246+
console.log(replaceVariable)
247+
console.log(variableDeclarar())
248+
249+
/**
250+
* en este caso let se puede utilizar dento de la funcion y remplazar el valor como se muestra en el siguiente ejemplo pero con
251+
* const no se puede generaria un error.
252+
*
253+
* en resumen el global es cuando tenemos una variable que podemos utilizar en varios segmentos de codigo y el local solo se puede utilizar dento
254+
* de un segmento de codigo que es lo ideal por buenas practicas es bueno siempre utilizar const.
255+
*
256+
*/
257+
258+
console.log('-----------------------------varibale con Let -------------------------------------------')
259+
let replaceVariableLet = 'utilizar variable dento de la funcion'
260+
261+
function variableDeclararLet() {
262+
replaceVariableLet = 'esta es una variable nueva'
263+
return replaceVariableLet
264+
}
265+
console.log('--Anterior--', replaceVariableLet)
266+
console.log(variableDeclararLet())
267+
console.log('--Despues--', replaceVariableLet)
268+
269+
270+
/**
271+
* Solucion de ejercicio Extra
272+
*/
273+
274+
function Ejercicio02(text1, text2) {
275+
let coutOtherNumbers = 0
276+
for (i = 0; i <= 100; i++) {
277+
if (i % 3 === 0 && i % 5 === 0) {
278+
console.log(i, ' ', text1, i, ' ', text2)
279+
} else if (i % 3 === 0) {
280+
console.log(i, ' ', text1)
281+
} else if (i % 5 === 0) {
282+
console.log(i, ' ', text2)
283+
} else {
284+
coutOtherNumbers++;
285+
}
286+
}
287+
return coutOtherNumbers
288+
}
289+
290+
const countValor = Ejercicio02('hola', 'mouredev')
291+
292+
console.log(`numeros que no son multiplos de 5 ni de 3 ${countValor}`)

0 commit comments

Comments
 (0)