1. Tiszteletben tartani a tárgy tulajdonjogát Ne adj hozzá attribútumokat instance-okhoz vagy prototípusokhoz; Ne adj hozzá metódusok példányokhoz vagy prototípusokhoz; Ne definiáld újra, amelyek már léteznek. A legjobb módja ennek, ha soha nem módosítasz olyan tárgyakat, amelyek nem a te tulajdonad. Egy tárgy birtoklása azt jelenti, hogy te hoztad létre, például egy egyedi típust vagy tárgyat, amit magad alkottál. A tömbök és dokumentumok nyilvánvalóan nem a tieid, már a kódod előtt léteznek. 2. Kerüld a globális változókat Legfeljebb globális változót hozz létre, lehetővé téve, hogy más objektumok és függvények is létezhessenek benne. Nézzük meg a következő példákat:
//两个全局量——避免!! var név = "Nicholas"; function sayName(){ riasztás(név);
} Ez a kód két globális mennyiséget tartalmaz: a változó nevét és a sayName() függvényt. Valójában létrehozhatsz olyan objektumot, amely mindkettőt tartalmazza, ahogy az alábbi példa is mutatja:
//一个全局量——推荐 var MyApplication = {
name: “Nicholas”,
sayName: function(){ riasztás(this.name);
} }; 3. Kerüld a null-hoz való összehasonlítást Ha az értéknek referenciatípusnak kell lennie, használjuk az operátor példányát a konstruktor ellenőrzésére; Ha az értéknek alap típusnak kell lennie, használd a typeof használatát a típus ellenőrzésére; Ha azt szeretnéd, hogy az objektum egy adott metódusnevet tartalmazzon, használd a typeof operátort, hogy megbizonyosodj arról, hogy a megadott nevű metódus jelen legyen az objektumon. (Itt ajánlom a webes front-end tanulási és csere csoportomat: 675498134, akár kezdő vagy, akár isten, szívesen látlak, hogy gyere el, tanulj és kommunikálj, és időnként osszon meg szárazanyagot, beleértve a legújabb front-end anyagokat és oktatóanyagokat, amelyeket magam állítottam össze, hogy átadjam nektek, és vannak technikai szakértők, akik minden nap élőben magyarázzák el a front-end ismereteket. Kezdők és haladó barátok is szívesen látottak, hogy tanuljanak, kommunikáljanak egymással, és haladjanak együtt. ) 4. Használj állandókat Bár a Javascrip{filter}t nem rendelkezik formális konstansokról, hasznos. Ez az ötlet, hogy az adatokat az alkalmazáslogikától elválasztjuk, képes megváltoztatni az adatokat anélkül, hogy hibákat okozna. Nézzük meg a következő példákat: var Konstanslar = { INVALID_VALUE_MSG: "Érvénytelen érték!", INVALID_VALUE_URL: "/errors/invalid.php" }; function validate(value){ if (!value){ alert(Constants.INVALID_VALUE_MSG); locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
} 5. Kerüld a globális keresést Valószínűleg a legfontosabb dolog a szkriptek teljesítményének optimalizálásához, ha figyelünk a globális lekérdezésekre. Globális változók és függvények használata mindenképpen drágább, mint a lokális, mert a scope láncban kell keresni. Nézze meg a következő funkciót: function updateUI(){ var imgs = document.getElementsByTagName("img"); for (var i=0, len=imgs.length; Len <; i++){ imgs[i].title = document.title + " image " + i;
} var msg = document.getElementById("msg"); msg.innerHTML = "Frissítés befejezve.";
} A függvény tökéletesen nézhet ki, de három hivatkozást tartalmaz a globális dokumentumobjektumra. Ha több kép van az oldalon, a for körben lévő dokumentumhivatkozást többször vagy akár százszor is végrehajtják, minden alkalommal scope lánc keresés történik. Ha létrehozunk egy lokális változót, amely a dokumentumobjektumra mutat, javíthatod ennek a függvénynek a teljesítményét azzal, hogy egy globális lekérdezést egyszer korlátozzunk: function updateUI(){ var doc = dokumentum; var imgs = doc.getElementsByTagName("img"); for (var i=0, len=imgs.length; Len <; i++){ imgs[i].title = doc.title + " image " + i;
} var msg = doc.getElementById("msg"); msg.innerHTML = "Frissítés befejezve."; Itt először helyezzük be a dokumentumobjektumot a helyi doc változóba; Ezután cseréld le az eredeti dokumentumot a többi kódra. Az eredeti verzióhoz képest a jelenlegi funkciónak csak egy globális keresése van, ami mindenképpen gyorsabb. 6. Egyéb óvintézkedések a teljesítményhez A natív módszerek gyorsabbak – Amikor csak lehet, használd a natív módszert ahelyett, hogy magad írnád át egyet Javascrip{filter}t segítségével. A natív módszer egy fordított nyelven, például C/C++-ban íródott, így sokkal gyorsabb, mint a Javascrip{filter}t. A Javascrip{filter}t leginkább elfeledett része a Math objektumokban megtalálható összetett matematika; Ezek a módszerek sokkal gyorsabbak, mint bármely más, Javascrip{filter}t módszerrel, például a szinusz és a koszinusz. A switch utasítások gyorsabbak – Ha egy sor összetett if-else utasítás van, gyorsabb kódot kaphatsz, ha ezeket egyetlen switch utasítássá alakítod. A switch állítást tovább finomíthatod azzal, hogy az esetállítást a legvalószínűbbtől a legkevésbé valószínűbbig rendezed. A bitoperátorok gyorsabbak – Matematikai műveletek végrehajtása közben a bitműveletek gyorsabbak, mint bármely Boole-i vagy aritmetikai művelet. Az aritmetikai műveletek szelektív helyettesítése bitműveletekkel jelentősen javíthatja a komplex számítások teljesítményét. A logika, mint a modulus, logika és az összeglogika, úgy tekinthető, hogy bitműveletekkel helyettesíthetők.
|