1. Respecter la propriété de l’objet N’ajoutez pas d’attributs aux instances ou prototypes ; N’ajoutez pas de méthodes aux instances ou prototypes ; Ne redéfinissez pas les méthodes déjà existantes. La meilleure façon de faire cela est de ne jamais modifier des objets qui ne vous appartiennent pas. Posséder un objet signifie que vous l’avez créé, comme un type personnalisé ou un objet littéral que vous avez vous-même créé. Les tableaux et documents ne sont évidemment pas à vous, ils existent avant que votre code ne soit exécuté. 2. Éviter les variables globales Créez au maximum une variable globale, permettant à d’autres objets et fonctions d’y exister. Regardez les exemples suivants :
//两个全局量——避免!! nom var = « Nicholas » ; fonction sayName(){ alerte(nom) ;
} Ce code contient deux quantités globales : le nom de la variable et la fonction sayName(). En fait, vous pouvez créer un objet qui contient les deux, comme montré dans l’exemple suivant :
//一个全局量——推荐 var MyApplication = {
name: “Nicholas”,
sayName: function(){ alerte(this.name) ;
} }; 3. Éviter de comparer avec null Si la valeur doit être un type de référence, utiliser l’opérateur instanceof pour vérifier son constructeur ; Si la valeur doit être un type de base, utiliser typeof pour vérifier son type ; Si vous souhaitez que l’objet contienne un nom de méthode spécifique, utilisez l’opérateur typeof pour vous assurer que la méthode avec le nom spécifié existe sur l’objet. (Ici, je recommande mon groupe d’apprentissage et d’échange web sur le front-end : 675498134, que vous soyez novice ou dieu, je vous invite à venir apprendre, communiquer, et partager des articles secs de temps en temps, y compris les derniers supports front-end et tutoriels que j’ai moi-même compilés pour vous offrir, et il y a des experts techniques qui expliquent en direct les connaissances front-end. Les débutants comme les amis avancés sont invités à apprendre, communiquer ensemble et progresser ensemble. ) 4. Utiliser des constantes Bien que Javascrip{filter}t n’ait pas de concept formel de constantes, il est utile. Cette idée de séparer les données de la logique applicative peut modifier les données sans risquer d’introduire des erreurs. Regardez les exemples suivants : var Constantes = { INVALID_VALUE_MSG : « Valeur invalide ! » INVALID_VALUE_URL : « /errors/invalid.php » }; fonction validate(value){ if ( !value){ alerte(Constants.INVALID_VALUE_MSG) ; locatio{filter}n.href = Constants.INVALID_VALUE_URL ;
}
} 5. Éviter la recherche globale Probablement la chose la plus importante pour optimiser la performance des scripts est de prêter attention aux recherches globales. Utiliser des variables et fonctions globales est définitivement plus coûteux que le local car cela implique des recherches sur la chaîne de périmètre. Jetez un œil à la fonction suivante : function updateUI(){ var imgs = document.getElementsByTagName(« img ») ; pour (var i=0, len=imgs.length ; J’ai < Len ; i++){ imgs[i].title = document.title + « image » + i ;
} var msg = document.getElementById(« msg ») ; msg.innerHTML = « Mise à jour terminée. » ;
} La fonction peut sembler parfaitement correcte, mais elle contient trois références à l’objet document global. S’il y a plusieurs images sur la page, la référence du document dans la boucle for sera exécutée plusieurs fois, voire des centaines de fois, à chaque recherche en chaîne de portée effectuée. En créant une variable locale pointant vers l’objet document, vous pouvez améliorer les performances de cette fonction en limitant une recherche globale une fois : function updateUI(){ var doc = document ; var imgs = doc.getElementsByTagName(« img ») ; pour (var i=0, len=imgs.length ; J’ai < Len ; i++){ imgs[i].title = doc.title + « image » + i ;
} var msg = doc.getElementById(« msg ») ; msg.innerHTML = « Mise à jour terminée. » ; Ici, placez d’abord l’objet document dans la variable doc locale ; Ensuite, remplacez le document original par le reste du code. Comparé à la version originale, la fonction actuelle n’a qu’une seule recherche globale, ce qui est nettement plus rapide. 6. Autres précautions pour la performance Les méthodes natives sont plus rapides - Dans la mesure du possible, utilisez la méthode native au lieu de la réécrire vous-même avec Javascrip{filter}t. La méthode native est écrite dans un langage compilé tel que C/C++, elle est donc beaucoup plus rapide que Javascrip{filter}t. La chose la plus oubliée à propos de Javascrip{filter}t est la complexité des mathématiques que l’on trouve dans les objets mathématiques ; Ces méthodes sont beaucoup plus rapides que toute autre méthode écrite avec Javascrip{filter}t, comme le sinus et le cosinus. Les instructions switch sont plus rapides - Si vous avez une série d’instructions if-else complexes, vous pouvez obtenir un code plus rapide en les convertissant en une seule instruction switch. Vous pouvez aussi affiner davantage la déclaration switch en organisant l’instruction de cas selon l’ordre du plus probable au moins probable. Les opérateurs de bits sont plus rapides - Lors de l’exécution d’opérations mathématiques, les opérations sur bits sont plus rapides que n’importe quelle opération booléenne ou arithmétique. Remplacer sélectivement les opérations arithmétiques par des opérations sur bits peut grandement améliorer la performance des calculs complexes. La logique telle que la logique du module, la logique et la logique somme peuvent être considérées comme remplacées par des opérations sur bits.
|