Ci-dessous quelques tests de performance en JavaScript afin de voir quelles pratiques sont les plus rapides. A noter que les différences d’exécution sont parfois quasi-imperceptibles, mais peuvent avoir une certaine incidence si vous devez répéter une opération de très nombreuses fois.
1) Il est plus rapide d’utiliser === quand on compare un boolean ou un number avec “”. En effet la comparaison avec null, 0, true, false ou un string se fait avec une conversion implicite (le test sur jspref.com) :
var test = true; if (myvar === true) {} // plus rapide
2) Pour convertir une string en chiffre il est plus rapide d’utiliser 1*string (test sur sperf.com) :
var test="2"; console.log(1*test + 3); // plus rapide console.log(parseInt(test) + 3); // plus lent
3) Assigner la valeur à un tableau directement plutôt qu’utiliser Array.push
(test sur jsperf.com) :
// plus lent for (i = 0; i < len; i++) itemsCopy.push(items[i]) // plus rapide for (i = 0; i < len; i++) itemsCopy[i] = items[i]
4) Utiliser String.indexOf
lorsque vous voulez savoir si une sous-chaine appartient à une plus grande chaine (test sur jsperf.com) :
if ("this is a test perf".indexOf("perf") > -1) {} // plus rapide
5) Traiter un tableau par la fin (test sur jsperf.com) :
for (var i=arr.length; i--;) {} // plus rapide for (var i=0,len=arr.length; i<len; i++) {} // légèrement plus lent
6) Avec jQuery il est beaucoup plus rapide d’utiliser .find()
que d’insérer le sous sélecteur dans le sélecteur principal (test sur jsperf.com) :
$('#mynode').find('div'); // plus rapide $('#mynode div'); // plus lent