Otimização de Operações Repetitivas em JavaScript
Frequentemente, programadores iniciantes fazem chamadas para a mesma função várias vezes sem pensar, desperdiçando recursos.
Vamos ver um exemplo. Suponha que temos uma string contendo um determinado caminho:
let path = 'img.png';
Suponha que nossa tarefa seja verificar
se o caminho termina com a extensão
.png ou .jpg. Alguns
programadores iniciantes escreveriam
a seguinte solução:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
O que há de errado com esta solução? O problema
é que o método slice é chamado duas vezes,
fazendo a mesma coisa. Isto, é claro,
não é o ideal.
Para otimizar, é necessário realizar o corte da string uma vez, armazenar o resultado em uma variável e, em seguida, usar essa variável posteriormente:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Otimize o código abaixo:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Otimize o código abaixo:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('fim de semana');
} else {
console.log('dia de semana');
}
Otimize o código abaixo:
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'ano ' + date.getFullYear() + ' é válido';
} else {
res = 'ano ' + date.getFullYear() + ' não é válido';
}
console.log(res)