|
|
Publicerad på 2017-12-04 20:23:14
|
|
|

1. Respektera äganderätten till objektet Lägg inte till attribut till instanser eller prototyper; Lägg inte till metoder till instanser eller prototyper; Omdefiniera inte metoder som redan finns. Det bästa sättet att göra detta är att aldrig ändra objekt som inte ägs av dig. Att äga ett objekt betyder att du har skapat det, till exempel en egen typ eller objektbokstav som du själv skapat. Arrays och dokument är uppenbarligen inte dina, de finns innan din kod körs. 2. Undvik globala variabler Skapa högst en global variabel, vilket tillåter andra objekt och funktioner att existera i den. Titta på följande exempel:
//两个全局量——避免!! var-namn = "Nicholas"; funktionen sayName(){ alert(namn);
} Denna kod innehåller två globala storheter: variabelnamnet och funktionen sayName(). Faktum är att du kan skapa ett objekt som innehåller båda, som visas i följande exempel:
//一个全局量——推荐 var MyApplication = {
name: “Nicholas”,
sayName: function(){ alert(this.name);
} }; 3. Undvik att jämföra med null Om värdet bör vara en referenstyp, använd operatorn instanceof för att kontrollera dess konstruktör; Om värdet ska vara en bastyp, använd typeof för att kontrollera dess typ; Om du vill att objektet ska innehålla ett specifikt metodnamn, använd operatorn typof-operatorn för att säkerställa att metoden med det angivna namnet finns på objektet. (Här rekommenderar jag min webbgrupp för front-end lärande och utbyte: 675498134, oavsett om du är nybörjare eller gud, välkomnar jag dig att komma och lära dig och kommunicera, och dela torrvaror då och då, inklusive det senaste frontend-materialet och handledningarna som jag själv har sammanställt för att ge dig, och det finns tekniska experter som förklarar frontend-kunskap live varje dag. Nybörjare och avancerade vänner är välkomna att lära sig och kommunicera tillsammans och göra framsteg tillsammans. ) 4. Använd konstanter Även om Javascrip{filter}t inte har något formellt begrepp om konstanter, är det användbart. Denna idé att separera data från applikationslogik kan förändra data utan att riskera att skapa fel. Titta på följande exempel: var Constants = { INVALID_VALUE_MSG: "Ogiltigt värde!", INVALID_VALUE_URL: "/errors/invalid.php" }; funktion validate(value){ om (!value){ alert(Constants.INVALID_VALUE_MSG); locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
} 5. Undvik global sökning Det viktigaste för att optimera skriptprestanda är nog att vara uppmärksam på globala uppslag. Att använda globala variabler och funktioner är definitivt dyrare än lokalt eftersom det innebär sökningar på scope-kedjan. Titta på följande funktion: function updateUI(){ var imgs = document.getElementsByTagName("img"); för (var i=0, len=imgs.length; Jag < len; i++){ imgs[i].title = dokument.title + " bild " + i;
} var msg = document.getElementById("msg"); msg.innerHTML = "Uppdatering slutförd.";
} Funktionen kan se helt okej ut, men den innehåller tre referenser till det globala dokumentobjektet. Om det finns flera bilder på sidan kommer dokumentreferensen i for-loopen att utföras flera gånger eller till och med hundratals gånger, varje gång en scope chain-uppslagning utförs. Genom att skapa en lokal variabel som pekar på dokumentobjektet kan du förbättra prestandan för denna funktion genom att begränsa en global uppslagning en gång: function updateUI(){ var doc = dokument; var imgs = doc.getElementsByTagName("img"); för (var i=0, len=imgs.length; Jag < len; i++){ imgs[i].title = doc.title + " image " + i;
} var msg = doc.getElementById("msg"); msg.innerHTML = "Uppdatering slutförd."; Här placerar du först dokumentobjektet i den lokala doc-variabeln; Ersätt sedan originaldokumentet med resten av koden. Jämfört med originalversionen har den nuvarande funktionen bara en global uppslagning, vilket definitivt är snabbare. 6. Andra försiktighetsåtgärder för prestation Inbyggda metoder är snabbare – Använd när det är möjligt den inbyggda metoden istället för att skriva om en själv med Javascrip{filter}t. Den inbyggda metoden är skriven i ett kompilerat språk som C/C++, så den är mycket snabbare än Javascrip{filter}t. Det mest bortglömda med Javascrip{filter}t är den komplexa matematiken som kan hittas i matematiska objekt; Dessa metoder är mycket snabbare än någon annan metod skriven med Javascrip{filter}t, såsom sinus och cosinus. Switch-satser är snabbare – Om du har en serie komplexa if-else-satser kan du få snabbare kod genom att konvertera dem till ett enda switch-uttalande. Du kan också ytterligare förfina switch-uttalandet genom att organisera ärendebeskrivningen i ordning från mest sannolikt till minst sannolikt. Bitoperatorer är snabbare – När man utför matematiska operationer är bitoperationer snabbare än någon boolesk eller aritmetisk operation. Att selektivt ersätta aritmetiska operationer med bitoperationer kan avsevärt förbättra prestandan för komplexa beräkningar. Logik såsom modul, logik och summlogik kan anses ersättas med bitoperationer.
|
Tjog
-
Se alla betyg
Föregående:SQL Server exporterar den specificerade datan med villkorNästa:Nybörjare spelar lite svart teknologi i CSS
|