Optimisation des opérations répétitives en JavaScript
Souvent, les programmeurs débutants appellent sans réfléchir la même fonction plusieurs fois, gaspillant des ressources.
Regardons un exemple. Supposons que nous ayons une chaîne contenant un certain chemin :
let path = 'img.png';
Supposons que nous ayons pour tâche de vérifier
si le chemin se termine par l'extension
.png ou .jpg. Un certain
programmeur débutant a écrit
la solution suivante :
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Qu'est-ce qui ne va pas avec cette solution ? Le problème est
que la méthode slice est appelée deux fois,
faisant la même chose. Ce n'est, bien sûr,
pas optimal.
Pour optimiser, il faut effectuer la découpe de la chaîne une seule fois, enregistrer le résultat dans une variable, puis utiliser cette variable ensuite :
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimisez le code ci-dessous :
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimisez le code ci-dessous :
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('jour de semaine');
}
Optimisez le code ci-dessous :
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'l\'année ' + date.getFullYear() + ' convient';
} else {
res = 'l\'année ' + date.getFullYear() + ' ne convient pas';
}
console.log(res)