-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3328 from DavidMoralesDeveloper/main
#1 - javascript
- Loading branch information
Showing
2 changed files
with
293 additions
and
0 deletions.
There are no files selected for viewing
142 changes: 142 additions & 0 deletions
142
Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/DavidMoralesDeveloper.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
/* | ||
* EJERCICIO: | ||
* 1- Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: | ||
* Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... | ||
* (Ten en cuenta que cada lenguaje puede poseer unos diferentes) | ||
* - Utilizando las operaciones con operadores que tú quieras, crea ejemplos | ||
* que representen todos los tipos de estructuras de control que existan | ||
* en tu lenguaje: | ||
* Condicionales, iterativas, excepciones... | ||
* - Debes hacer print por consola del resultado de todos los ejemplos. | ||
* | ||
* DIFICULTAD EXTRA (opcional): | ||
* Crea un programa que imprima por consola todos los números comprendidos | ||
* entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. | ||
* | ||
* Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. | ||
*/ | ||
|
||
|
||
//1 Operadores | ||
const a = 1 | ||
const b = 2 | ||
const c = 3 | ||
//Aritméticos | ||
// suma+, resta-, multiplicasion*, division/, modulo(resto)% | ||
// exponenciación **, incremento ++, decremento -- | ||
|
||
const suma = a + b | ||
const resta = a - b | ||
const multiplicasion = a * b | ||
const division = a / b | ||
const modulo = a % b | ||
const exponecia = a ** b | ||
|
||
// lógicos | ||
// || or si una es true , && si las dos son true !true diferente de | ||
|
||
console.log(a || b) | ||
console.log(a && b) | ||
console.log(!true); | ||
|
||
//asignación | ||
// = asignacion de un valor, +=sumar , -= para restar el operando derecho *= , /=, %= | ||
let x = 10; | ||
x += 5; // x = 15 | ||
x -= 2; // x = 13 | ||
x *= 3; // x = 39 | ||
x /= 2; // x = 19.5 | ||
x %= 4; // x = 3.5 | ||
|
||
|
||
//De comparación: | ||
console.log(2 === 2); // Igualdad estricta: true | ||
console.log(2 == 2); // Igualdad no estricta: true | ||
console.log(2 > 1); // Mayor que: true | ||
console.log(2 >= 2); // Mayor o igual que: true | ||
console.log(1 < 2); // Menor que: true | ||
console.log(1 <= 2); // Menor o igual que: true | ||
|
||
//Identidad: | ||
const d = 10; | ||
const e = 10; | ||
console.log(d === e); // true (mismo valor y tipo) | ||
const f = "10"; | ||
console.log(d === f); // false (mismo valor, diferente tipo) | ||
|
||
|
||
//Pertenencia: | ||
const lista = ["a", "b", "c"]; | ||
console.log("a" in lista); // true | ||
console.log("d" in lista); // false | ||
|
||
//Bits | ||
console.log(1 | 2); // OR a nivel de bits: 3 | ||
console.log(1 & 2); // AND a nivel de bits: 0 | ||
console.log(1 ^ 2); // XOR a nivel de bits: 3 | ||
console.log(~1); // NOT a nivel de bits: -2 | ||
|
||
|
||
//Estructuras de Control | ||
//OPERADOR TERNARIO | ||
//expresión ? "si es true" : "si es false"; | ||
let edad = 16; | ||
let acceso = edad > 17 ? "Permitir acceso" : "Denegar acceso"; | ||
console.log(acceso); | ||
|
||
//Condicional | ||
const g = 19 | ||
if(g > 18 ) { | ||
console.log('Es mayor de edad') | ||
}else{console.log('es menor de edad') } | ||
|
||
//Iterativas: | ||
// Bucle for | ||
for (let i = 0; i = 100; i++){ | ||
console.log(i + 'bucle for') | ||
} | ||
// Bucle while | ||
|
||
let i = 0; | ||
let j = 0; | ||
while (n < 3) { | ||
i++; | ||
j += i; | ||
} | ||
|
||
// Bucle do-while | ||
// let j = 0; do{i+1; console.log(i)}; wile{i <5} | ||
let z = 3; | ||
|
||
// do...while loop | ||
do { | ||
console.log(z); | ||
z--; | ||
} while (z > 0); | ||
|
||
//for of for in | ||
const arr = [3, 5, 7]; | ||
arr.foo = "hola"; | ||
|
||
for (let i in arr) { | ||
console.log(i); // logs "0", "1", "2", "foo" | ||
} | ||
|
||
for (let i of arr) { | ||
console.log(i); // logs 3, 5, 7 | ||
} | ||
|
||
|
||
// * DIFICULTAD EXTRA (opcional): | ||
// * Crea un programa que imprima por consola todos los números comprendidos | ||
// * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. | ||
|
||
for (let i = 10; i < 55; i++){ | ||
if(i%2 === 0 && i !=16 && i % 3 != 0) | ||
console.log(i) | ||
} | ||
|
||
// 10, 14, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52 | ||
//i%2 === 0 = 10 12 14 16 18 20 | ||
//i !=16 = 12 14 18 20 | ||
//modulo de tres es distinto a 0 4 / 3 = 0.12 (!=) |
151 changes: 151 additions & 0 deletions
151
Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
//1 - Crea ejemplos de funciones básicas que representen las diferentes posibilidades del lenguaje: | ||
|
||
// funsion simple ------------------------------- | ||
// Autoejecutable | ||
(function () { | ||
console.log("Autoejecutable"); | ||
})(); | ||
//declarativa | ||
function hello (){ | ||
console.log('hello word , funcion declarativa') | ||
} | ||
|
||
|
||
// Expresión (anónimas) | ||
const sumFunction = function (a, b){ | ||
return a+ b | ||
} | ||
|
||
|
||
|
||
// Flecha (arrow) | ||
const arrowFunction = (a, b) => { | ||
return a * b | ||
} | ||
|
||
|
||
// con retorno ------------------------------------ | ||
|
||
function square(number) { | ||
return number * number; | ||
} | ||
// este return puedo grardarlo en una variable | ||
let area = square(4) | ||
|
||
|
||
// con argumento ----------------------------------- | ||
function nombre (nombre) { | ||
console.log('mi nombre es ' + nombre) | ||
} | ||
|
||
|
||
|
||
function idioma (idioma, nombre) { | ||
console.log(idioma + nombre) | ||
} | ||
|
||
|
||
|
||
// argumento default | ||
|
||
function defaultsuma (a =5, b = 2 ){ | ||
return a*b | ||
} | ||
|
||
|
||
|
||
//Callbacks | ||
var funB = function () { | ||
return console.log('Funcion B ejecutada'); | ||
}; | ||
var funA = function (callback) { | ||
callback(); | ||
}; | ||
|
||
|
||
//2 - Comprueba si puedes crear funciones dentro de funciones. | ||
//Sucesión de Fibonacci complegidad 2^n | ||
|
||
function fibonacci (num) { | ||
if(num < 2) return num | ||
//funciona en 0 y 1 retorna num , cuando el numero es mayor , va retrocediendo hasta llegar al 1al llegar al 1 entra en el if y es por eso que se puede parar la recursividad | ||
|
||
return fibonacci(num-2) + fibonacci(num-1) | ||
} | ||
|
||
console.log(fibonacci(10)) | ||
|
||
//3- Pon a prueba el concepto de variable LOCAL y GLOBAL. | ||
// no esoty seguro si es lo que pide... | ||
// "String.split()String.substring()String.trim()Array.map()Array.push()Array.pop()String.slice()Array.slice()Object.toString()Number.toFixed()parseInt()Math.random()console.log()" | ||
|
||
//4 - Pon a prueba el concepto de variable LOCAL y GLOBAL. | ||
|
||
const varGlobal = 10 | ||
function sumLocalGlobal (num){ | ||
const local = num | ||
return local + varGlobal | ||
} | ||
|
||
console.log(sumLocalGlobal(5)) | ||
|
||
// - Debes hacer print por consola del resultado de todos los ejemplos. | ||
hello() | ||
console.log('funcion expersión anónimas : '+ sumFunction( 5, 2)) | ||
console.log('funcion de flecha : ' + arrowFunction( 8, 3)) | ||
console.log(area) | ||
nombre('David') | ||
idioma('hi', 'david') | ||
idioma('hola', 'david') | ||
console.log(defaultsuma()) | ||
console.log(defaultsuma(20 , 10)) | ||
funA(funB); | ||
|
||
|
||
// DIFICULTAD EXTRA (opcional): | ||
// * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número. | ||
// * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que: | ||
// * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro. | ||
// * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro. | ||
// * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas. | ||
// * - La función retorna el número de veces que se ha impreso el número en lugar de los textos. | ||
|
||
// primer intento no funciona | ||
// function extra (cadena1, cadena2){ | ||
// let contador = 0 | ||
// for(let i = 1; i <= 100; i++){ | ||
// if (i % 3 != 0){ | ||
// console.log(cadena1) | ||
// } | ||
// if (i % 5 != 0){ | ||
// console.log(cadena2) | ||
// } | ||
// if(i%3 != 0 && i%5 !=0){ | ||
// console.log(cadena1 + cadena2) | ||
// }else | ||
// contador ++ | ||
// console.log(i) | ||
// } | ||
// return contador | ||
// } | ||
|
||
// console.log(extra('dmultiplo3', 'dmultiplo de 5')) | ||
|
||
//correcion | ||
function correccionExtra ( multiplo, multiplo2){ | ||
let contador = 0 | ||
for (let i = 1; i <= 100; i++){ | ||
if (i % 3 === 0 && i % 5 === 0){ | ||
console.log( ` es ${multiplo} y ${multiplo2}`) | ||
}else if(i % 5 === 0){ | ||
console.log(multiplo2) | ||
}else if(i % 3 === 0){ | ||
console.log(multiplo) | ||
} | ||
contador ++ | ||
console.log(i) | ||
} return contador | ||
} | ||
|
||
console.log(correccionExtra('multiplo de 3', 'multiplo de 5')) | ||
// correcion de coomit |