Si j'ai besoin de voir si une certaine valeur est dans une chaîne, vaut-il mieux utiliser la méthode .test() ou la méthode .search()?Performance JavaScript - .test() vs .search()
Exemple avec .search():
var myRegExp = '/Orange/',
myString = 'This is a string with the word "Orange."';
if(myString.search(myRegExp) != -1) {
// Do code here
}
Exemple avec .test():
var myRegExp = '/Orange/',
myString = 'This is a string with the world "Orange."';
if(myRegExp.test(myString)) {
// Do code here
}
En fin de compte, ce que je fais est à la recherche d'un nom de classe spécifique dans la chaîne. L'élément contiendrait plusieurs classes, donc je devrais trouver si l'une des classes est dedans.
Exemple de balisage:
<ul>
<li class="expandable expanded">
<ul>
<li>Text</li>
</ul>
<li>
<li class="expandable collapsed">
<ul>
<li>Text</li>
</ul>
</li>
</ul>
Alors, j'ajoute un événement click pour les éléments de la liste, si elles ont le nom de classe « élargi » dont ils ont besoin de se comporter d'une façon, si elles ont le nom de classe "effondrés" ils ont besoin de se comporter une autre.
Donc, essentiellement, quelque chose comme ça.
element.addEventListener('click',function(e) {
if(/* e.target has class name of expanded */) {
// Do certain code
} else {
// Do other code
}
}
J'utilise jQuery, et je suis ouvert aux suggestions, mais je me sens cette situation serait mieux servie avec le javascript natif. Alors, quelle méthode donnerait la meilleure performance? Ou y a-t-il une autre méthode qui serait encore meilleure?
http://jsperf.com/ –