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:
javascriptlet path = 'img.png';
Misalkan tugas kita adalah memeriksa,
apakah path berakhiran dengan ekstensi
.png atau .jpg. Beberapa
programmer pemula menulis
solusi berikut:
javascriptlet 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:
javascriptlet path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimalkan kode di bawah ini:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimalkan kode di bawah ini:
javascriptlet date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Optimalkan kode di bawah ini:
javascriptlet 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)