⊗jsSpOtRO 270 of 294 menu

Ottimizzazione delle operazioni ripetute in JavaScript

Spesso i programmatori principianti eseguono indiscriminatamente la stessa funzione più volte, spreccando risorse.

Diamo un'occhiata a un esempio. Supponiamo di avere una stringa che contiene un certo percorso:

let path = 'img.png';

Supponiamo di dover verificare se il percorso termina con l'estensione .png o .jpg. Alcuni programmatori principianti hanno scritto la seguente soluzione:

let path = 'img.png'; if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') { console.log('+++'); } else { console.log('---'); }

Cosa non va in questa soluzione? Il problema è che il metodo slice viene chiamato due volte, facendo la stessa cosa. Questo, ovviamente, non è ottimale.

Per ottimizzare, è necessario eseguire il taglio della stringa una volta, salvare il risultato in una variabile, e poi utilizzare questa variabile in seguito:

let path = 'img.png'; let ext = path.slice(-4); if (ext === '.png' || ext === '.jpg') { console.log('+++'); } else { console.log('---'); }

Ottimizza il codice qui sotto:

let num = 123; if (String(num)[0] === '1' || String(num)[0] === '2') { console.log('+++'); } else { console.log('---'); }

Ottimizza il codice qui sotto:

let date = new Date(); if (date.getDay() === 0 || date.getDay() === 6) { console.log('weekend'); } else { console.log('weekday'); }

Ottimizza il codice qui sotto:

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)
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta