Optimasi Operasi Berulang dalam JavaScript
Seringkali programmer pemula tanpa berpikir melakukan pemanggilan fungsi yang sama beberapa kali, menghabiskan sumber daya.
Mari kita lihat sebuah contoh. Misalkan kita diberikan sebuah string, berisi suatu path:
let path = 'img.png';
Misalkan tugas kita adalah memeriksa,
apakah path berakhiran dengan ekstensi
.png atau .jpg. Beberapa
programmer pemula menulis
solusi berikut:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Apa yang salah dengan solusi ini? Masalahnya adalah,
method slice dipanggil dua kali,
melakukan hal yang sama. Ini, tentu saja,
tidak optimal.
Untuk mengoptimalkan, kita perlu melakukan pemotongan string sekali saja, mencatat hasilnya ke dalam variabel, lalu menggunakan variabel ini selanjutnya:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimalkan kode di bawah ini:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimalkan kode di bawah ini:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Optimalkan kode di bawah ini:
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'year ' + date.getFullYear() + ' fits';
} else {
res = 'year ' + date.getFullYear() + ' doesn't fit';
}
console.log(res)