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