1. Respectarea proprietății asupra obiectului Nu adăugați atribute instanțelor sau prototipurilor; Nu adăugați metode la instanțe sau prototipuri; Nu redefiniți metodele care există deja. Cel mai bun mod de a face asta este să nu modifici niciodată obiecte care nu îți aparțin. A deține un obiect înseamnă că tu l-ai creat, cum ar fi un tip personalizat sau un obiect literal pe care l-ai creat singur. Array-urile și documentele evident nu sunt ale tale, ele există înainte ca codul tău să fie executat. 2. Evitarea variabilelor globale Creează cel mult o variabilă globală, permițând altor obiecte și funcții să existe în ea. Aruncă o privire la următoarele exemple:
//两个全局量——避免!! nume var = "Nicholas"; funcția sayName(){ alertă(nume);
} Acest cod conține două mărimi globale: numele variabilei și funcția sayName(). De fapt, poți crea un obiect care să conțină ambele, așa cum se arată în următorul exemplu:
//一个全局量——推荐 var MyApplication = {
name: “Nicholas”,
sayName: function(){ alert(this.name);
} }; 3. Evitați comparația cu null Dacă valoarea ar trebui să fie un tip de referință, folosiți operatorul instanceof pentru a verifica constructorul său; Dacă valoarea ar trebui să fie un tip de bază, folosiți typeof pentru a-i verifica tipul; Dacă doriți ca obiectul să conțină un nume specific de metodă, folosiți operatorul typeof pentru a vă asigura că metoda cu numele specificat există pe obiect. (Aici recomand grupul meu web de învățare și schimb de front-end: 675498134, fie că ești începător sau zeu, te invit să vii să înveți și să comunici, și să împărtășești din când în când produse textile, inclusiv cele mai noi materiale și tutoriale de front-end pe care le-am compilat eu însumi să ți le ofer, iar există experți tehnici care explică în direct cunoștințele de front-end. Începătorii și prietenii avansați sunt bineveniți să învețe și să comunice împreună și să progreseze împreună. ) 4. Folosirea constantelor Deși Javascrip{filter}t nu are un concept formal de constante, este util. Această idee de separare a datelor de logica aplicației poate schimba datele fără a risca introducerea unor erori. Aruncă o privire la următoarele exemple: var Constants = { INVALID_VALUE_MSG: "Valoare invalidă!", INVALID_VALUE_URL: "/erori/invalid.php" }; funcția validate(value){ dacă (!value){ alertă(Constants.INVALID_VALUE_MSG); locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
} 5. Evitați căutarea globală Probabil cel mai important lucru pentru optimizarea performanței scripturilor este să acorzi atenție căutărilor globale. Folosirea variabilelor și funcțiilor globale este cu siguranță mai scumpă decât cea locală pentru că implică căutări pe lanțul de scope. Aruncă o privire la următoarea funcție: function updateUI(){ var imgs = document.getElementsByTagName("img"); pentru (var i=0, len=imgs.length; Am < Len; i++){ imgs[i].titlu = document.titlu + " imagine " + i;
} var msg = document.getElementById("msg"); msg.innerHTML = "Actualizare completă.";
} Funcția poate părea perfect în regulă, dar conține trei referințe la obiectul document global. Dacă există mai multe imagini pe pagină, referința documentului în bucla for va fi executată de mai multe ori sau chiar de sute de ori, de fiecare dată se va efectua o căutare în lanț de scope. Prin crearea unei variabile locale care indică către obiectul documentului, poți îmbunătăți performanța acestei funcții limitând o căutare globală o singură dată: function updateUI(){ var doc = document; var imgs = doc.getElementsByTagName("img"); pentru (var i=0, len=imgs.length; Am < Len; i++){ imgs[i].title = doc.title + " imagine " + i;
} var msg = doc.getElementById("msg"); msg.innerHTML = "Actualizare completă."; Aici, mai întâi plasează obiectul document în variabila locală doc; Apoi înlocuiește documentul original cu restul codului. Comparativ cu versiunea originală, funcția actuală are doar o singură căutare globală, care este cu siguranță mai rapidă. 6. Alte precauții pentru performanță Metodele native sunt mai rapide - Ori de câte ori este posibil, folosește metoda nativă în loc să o rescrii singur cu Javascrip{filter}t. Metoda nativă este scrisă într-un limbaj compilat precum C/C++, deci este mult mai rapidă decât Javascrip{filter}t. Cel mai uitat lucru despre Javascrip{filter}t este matematica complexă care poate fi găsită în obiectele Math; Aceste metode sunt mult mai rapide decât orice altă metodă scrisă cu Javascrip{filter}t, cum ar fi sinusul și cosinusul. Instrucțiunile switch sunt mai rapide - Dacă ai o serie de instrucțiuni if-else complexe, poți obține cod mai rapid convertindu-le într-o singură instrucțiune switch. Poți, de asemenea, să rafinezi și mai mult afirmația switch organizând-o în ordinea de la cel mai probabil la cel mai puțin probabil. Operatorii de biți sunt mai rapizi - Când se efectuează operații matematice, operațiile pe biți sunt mai rapide decât orice operație booleană sau aritmetică. Înlocuirea selectivă a operațiilor aritmetice cu operații pe biți poate îmbunătăți semnificativ performanța calculelor complexe. Logica precum modulul, logica și logica sumei pot fi considerate a fi înlocuite cu operații pe biți.
|