una ultimo remove from eliminar caracteres caracter cadena array javascript jquery

ultimo - javascript slice vs splice



Usando el método Javascript slice() sin argumentos (1)

El método .slice() hace una copia (superficial) de una matriz y toma parámetros para indicar qué subconjunto de la matriz de origen copiar. Llamarlo sin argumentos solo copia toda la matriz. Es decir:

_buffer.slice(); // is equivalent to _buffer.slice(0); // also equivalent to _buffer.slice(0, _buffer.length);

EDITAR: ¿No es obligatorio el índice de inicio? Sí. Y no. Más o menos Las referencias de JavaScript (como MDN ) generalmente dicen que .slice() requiere al menos un argumento, el índice de inicio . Llamar a .slice() sin argumentos es como decir .slice(undefined) . En el ECMAScript Language Spec , el paso 5 en el algoritmo .slice() dice "Let relativeStart be ToInteger(start) ". Si observa el algoritmo para la operación abstracta ToInteger() , que a su vez usa ToNumber() , verá que termina convirtiendo undefined a 0 .

Aún así, en mi propio código, siempre diría .slice(0) , not .slice() - para mí parece más nítido.

Actualmente estoy leyendo este plugin de enmascaramiento de jquery para tratar de comprender cómo funciona, y en numerosos lugares el autor llama a la función slice() sin pasarle ningún argumento. Por ejemplo, aquí la variable _buffer es slice() d, y _buffer.slice() y _buffer parecen contener los mismos valores.

¿Hay alguna razón para hacer esto o el autor está haciendo que el código sea más complicado de lo que debería ser?

//functionality fn function unmaskedvalue($input, skipDatepickerCheck) { var input = $input[0]; if (tests && (skipDatepickerCheck === true || !$input.hasClass(''hasDatepicker''))) { var buffer = _buffer.slice(); checkVal(input, buffer); return $.map(buffer, function(element, index) { return isMask(index) && element != getBufferElement(_buffer.slice(), index) ? element : null; }).join(''''); } else { return input._valueGet(); } }