JavaScript-də Təkrarlanan Əməliyyatların Optimallaşdırılması
Tez-tez başlayan proqramçılar düşünmədən eyni funksiyanı bir neçə dəfə çağıraraq resursları israf edirlər.
Gəlin bir nümunəyə baxaq. Tutaq ki, bizə müəyyən bir yolu ehtiva edən bir sətir verilib:
let path = 'img.png';
Tutaq ki, qarşımızda yolun .png və ya
.jpg genişlənməsi ilə bitib-bitmədiyini
yoxlamaq vəzifəsi durur. Bəzi
başlayan proqramçı aşağıdakı həlli
yazıb:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Bu həlldə nə səhvdir? Problem ondadır ki,
slice metodu eyni şeyi edərək
iki dəfə çağırılır. Bu, əlbəttə ki,
optimal deyil.
Optimallaşdırmaq üçün sətirin kəsmə əməliyyatını bir dəfə yerinə yetirmək, nəticəni dəyişəndə yazmaq, sonra isə bu dəyişəni bundan sonra istifadə etmək lazımdır:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Aşağıdakı kodu optimallaşdırın:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Aşağıdakı kodu optimallaşdırın:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('istirahet');
} else {
console.log('is');
}
Aşağıdakı kodu optimallaşdırın:
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'il ' + date.getFullYear() + ' uyğundur';
} else {
res = 'il ' + date.getFullYear() + ' uyğun deyil';
}
console.log(res)