L'opérateur de décalage vers la droite non signé est utilisé dans toutes les implémentations de méthodes extras de tableau de Mozilla, pour garantir que la propriété length
est un entier 32 bits non signé.
La propriété length
des objets tableau est décrite dans la spécification comme suit :
Chaque objet tableau a une propriété de longueur dont la valeur est toujours un entier positif inférieur à 232.
Cet opérateur est le moyen le plus rapide d'y parvenir, les méthodes de tableau utilisent en interne l'opération ToUint32
, mais cette méthode n'est pas accessible et n'existe pas dans la spécification à des fins d'implémentation.
Les implémentations des extras de tableau de Mozilla tentent d'être conformes à ECMAScript 5, consultez la description de la méthode Array.prototype.indexOf
(§ 15.4.4.14) :
1\. Que O soit le résultat de l'appel de ToObject en passant la valeur this
comme argument.
2. Que lenValue soit le résultat de l'appel de la méthode interne \[\[Get\]\] de O avec
l'argument "length".
3. Que len soit **ToUint32(lenValue)**.
....
Comme vous pouvez le constater, ils veulent simplement reproduire le comportement de la méthode ToUint32
pour se conformer à la norme ES5 sur une implémentation ES3, et comme je l'ai dit auparavant, l'opérateur de décalage vers la droite non signé est la manière la plus simple.