est Sous l'impression qui rejoint () Est plus rapide, j'ai commencé par mon code pour l'utiliser plutôt que +, puis j'ai couru dans la ligne suivante dans le code Google Analytics: P> [x, y, z] .join ('') code> vraiment plus vite que
x + y + z code> pour les chaînes?
ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
3 Réponses :
Le tableau Pour les autres navigateurs, la différence de performance n'était pas si grande, donc c'était un bon conseil d'utiliser .join () code> Méthode (-Trick) pour les chaînes de concaténage a ensuite ses racines à l'époque lorsque des sites Web ont couru sur Internet Explorateurs comme beaucoup. Pour IE6 + 7, c'est très vrai que
.join () code> est
+ code> en raison d'un comportement vraiment mauvais avec les opérations de chaîne dans IE. P>
.join () code> (à nouveau, à l'époque). De nos jours, la plupart des moteurs optimisent les opérations de chaîne Big Time et à moins que vous ne penses que l'un de votre code circule dans IE6 + 7, vous devez simplement utiliser
+ code>. P>.
Utilisation de Firebug Console dans Firefox 6.0.2 Utilisation du code suivant:
b = new Date().getTime(); for (var i = 0; i < 10000; i++) {a = ["sfhfdshdshsdh","sfhsfdhsfhdsfh","shsfdsdgsdgsgsdfgdfsgsfdghsdfhsdh"].join();} c = new Date().getTime(); d = c - b;
Voici un exemple que j'ai couru sur Google Chrome. p>
Essayez d'autres broswers .... p>
en chrome pour moi + code> était toujours plus rapide ... p>
La vitesse d'une fonction est déterminée par la mise en œuvre JavaScript, qui varie entre les navigateurs. Pour tester - JSPERF.COM
Ceci est également
[x, y] .join ('') code>. Je crois que les économies sont avec un plus grand nombre d'arguments (car vous faites un appel par annexe avec
+ code> et que vous joinez est juste un appel de fonction.)
+ Bakudan, a trouvé un test qui devrait renvoyer une lumière: JSperf.com/concat-vs-join2/ 4