Optimización de operaciones repetitivas en JavaScript
A menudo, los programadores principiantes realizan sin pensar la llamada a la misma función varias veces, consumiendo recursos.
Veamos un ejemplo. Supongamos que tenemos una cadena que contiene alguna ruta:
javascriptlet path = 'img.png';
Supongamos que tenemos la tarea de verificar
si la ruta termina con la extensión
.png o .jpg. Algún
programador principiante escribió
la siguiente solución:
javascriptlet path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
¿Qué está mal con esta solución? El problema es que
el método slice se llama dos veces,
haciendo lo mismo. Esto, por supuesto,
no es óptimo.
Para optimizar, necesita realizar el corte de la cadena una vez, guardar el resultado en una variable y luego usar esta variable más adelante:
javascriptlet path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimice el siguiente código:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimice el siguiente código:
javascriptlet date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('fin de semana');
} else {
console.log('día laboral');
}
Optimice el siguiente código:
javascriptlet date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'el año ' + date.getFullYear() + ' es adecuado';
} else {
res = 'el año ' + date.getFullYear() + ' no es adecuado';
}
console.log(res)