Skip to content

Instantly share code, notes, and snippets.

@mrcodedev
Last active January 12, 2019 12:38
Show Gist options
  • Save mrcodedev/c90e40227e369df1b1151fbc8e9783c5 to your computer and use it in GitHub Desktop.
Save mrcodedev/c90e40227e369df1b1151fbc8e9783c5 to your computer and use it in GitHub Desktop.
Workshop de introducción de JS (de ES6 pa'lante)

Workshop de introducción de JS (de ES6 pa'lante)

Diferencias de valores

NaN == NaN
//false

Casting

Operaciones no con los valores sino con los tipos

JavaScript si sumas dos valores (ejemplo):

'1' + 1
//11

Hará un autocasting, y va a funcionar por pesos, no por orden de asignación.

Operaciones locas

let aString = 'a';
let noValue = undefined;

console.log(3 + true);
//4

console.log('3' + 1);
//Por pesos da 31 ya que lo convierte los dos en String

console.log('2' + false);
//2false

console.log('34' < '5';
//true

'Hello' + noValue;
//'Hello undefined'

Condicionales

Operador ternario

cond ? value1 : value2;

Se pueden concatenar operadores ternarios pero no es recomendable

cond1 ? value 1 : value2 ? cond2 : value3

Switch

switch(tipos) {
  case 'juniors':
    console.log('Hola Junior');
  break;
  case 'analistas':
    console.log('Hola analistas');
  break;
  default:
    console.log('Hola persona sin definir');
  break;
}

Cuando no ponemos un break se ejecutan las siguientes sentencias hasta que se encuentra un break.

Bucles

For

for(let i=0; i < 20; i++) {
  código;
}

While

 while(sentencia) {
  código;
 }

DoWhile

do {
  código;
} while(condición);

Diferencias entre while y doWhile es que el primero se ve la sentencia y después se ejecuta. Y la otra se ejecuta y después se ve la condición

Arrays

let listaNumeros = [1,2,3,4,5];
let index = 4;

console.log(listaNumeros.length);
//4
console.log(listaNumeros[index]);
//5

listaNumeros.push(6);
//Añade un elemento al final del array

let firstValue = listaNumeros.shift();
//Retiramos el primer elemento y se reconstruye
console.log(firstValue);
console.log(listaNumeros);

push añadimos un elemento al final del array.

shift retiramos el primer elemento y se reconstruye el array.

Ejercicio Números primos

Sacar los primeros 20 números primos.

Solución

let primeNumbers = [];
let index = 1;

do {
    let value = index - 1;

    while(index % value !== 0 && value > 1) {
        value--;
    }

    if(value === 1 || index === 1) {
        primeNumbers.push(index);
    }

    index++;
}
while(primeNumbers.length < 20);

console.log(primeNumbers);

Ejercicio suma del array

Suma todos los valores del siguiente array.

Solución

let listNumbers = [15, 32, 56, 93, 122, 34, 45];
let resultado = 0;

for(let i = 0; i < listNumbers.length; i++) {
    resultado += listNumbers[i];
}

console.log(resultado);

Funciones

/**
* Scope Global
*/

let incremento = 5;

function muestraIncremento() {
  console.log(incremento);
}

function saludo() {
  console.log('Hola a todos');
}

function isPar(value) {
  return value % 2 === 0;
}

let isImpar = function(value) {
  return value % 2 != 0;
}

function ejecutoLogica(value, cb) {
  return cb(value);
}

//Arrow function de la función isPar, viene el return implicito
let bar = (value) => value % 2 === 0;

//Para ponerlo con llaves debemos de poner un return
let bar = (value) => {
  return value % 2 === 0;
}

function sumaDos(value) {
  /**
  * Scope léxico
  */
  let incremento = 2;
  
  if(value % 2 === 0){
    let incremento = 7;
    
    return value + incremento;
  }
  return value + incremento;
}

saludo();
console.log(isPar(2));
console.log(isPAR(3));
console.log(isImpar(33));
console.log(ejecutoLogica(2, isImpar));
console.log(ejecutoLogica(2, isPar));

Ejercicio sacar un número primo en una función

//Realizar

Ejercicio de sumatoria en una funcion

let listNumbers = [ 15, 32, 56, 93, 112, 34, 45 ];
let resultado = 0;

listNumbers.foreach((numero) => {
  resultado += numero;
});

console.log(resultado);

Repasar

function bar() {
  let value = 2;
  
  fumnction foo() {
    console.log(value);
   }
   return foo;
}

bar()();
  • Repasar closures extremes.
  • 3 + true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment