Estaba buscando en el manual de referencia de javascript en la página indexOf en el sitio developer.mozilla.org, y noté algunas cosas en su código de implementación de indexOf, espero que alguien pueda explicarme.¿Por qué usar los argumentos/*, */around y por qué usar >>> al extraer la longitud de una matriz?
Para guardar todos un ida y vuelta al sitio de Mozilla, aquí está toda la función:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
Lo que no entiendo es el /*, from*/
en la declaración de la función, y el relleno de cero desplazamiento a la derecha >>>
en la extracción de la longitud de la matriz (var len = this.length >>> 0;
).
Gracias, tiene sentido ahora. No me di cuenta de que la propiedad de longitud podría ser cualquier cosa menos unsigned, JavaScript me desconcierta a veces :) –