NaN == NaN
//false
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.
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'
cond ? value1 : value2;
Se pueden concatenar operadores ternarios pero no es recomendable
cond1 ? value 1 : value2 ? cond2 : value3
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.
for(let i=0; i < 20; i++) {
código;
}
while(sentencia) {
código;
}
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
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.
Sacar los primeros 20 números primos.
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);
Suma todos los valores del siguiente array.
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);
/**
* 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));
//Realizar
let listNumbers = [ 15, 32, 56, 93, 112, 34, 45 ];
let resultado = 0;
listNumbers.foreach((numero) => {
resultado += numero;
});
console.log(resultado);
function bar() {
let value = 2;
fumnction foo() {
console.log(value);
}
return foo;
}
bar()();
- Repasar closures extremes.
- 3 + true;