Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 7794|Respuesta: 0

[JavaScript] Operador de extensión es6 Tres puntos (...) )

[Copiar enlace]
Publicado en 19/6/2020 12:31:11 | | |
significado

El operador de expansión (spread) es de tres puntos (...) )。 Es como el inverso de un parámetro de reposo, convirtiendo un array en una secuencia de parámetros separada por comas.



Este operador se utiliza principalmente para llamadas a funciones.



En el código anterior, array.push(...) ítems) y add(...) números), ambos son llamadas a funciones, y ambos utilizan operadores de extensión. Este operador convierte un array en una secuencia de parámetros.
Los operadores de extensión pueden usarse en combinación con parámetros de función normal, lo cual es muy flexible.



Método de aplicación para matrices alternativas

Dado que el operador de extensión puede expandir el array, no es necesario usar el método apply para convertir el array en un argumento de la función.



Aquí tienes un ejemplo práctico de un operador de extensión que reemplaza el método apply, aplicando Math.max método para simplificar la escritura del elemento más grande de un array.



El código anterior dice que, dado que JavaScript no proporciona una función para encontrar el elemento más grande de un array, solo puedes aplicar Math.max función para convertir el array en una secuencia de parámetros y luego encontrar el valor máximo. Con el operador de extensión, puedes usar Math.max directamente.
Otro ejemplo es añadiendo un array a la cola de otro array mediante la función push.



En el método de escritura ES5 del código anterior, los parámetros del método push no pueden ser arrays, por lo que tenemos que usar el método push de forma flexible a través del método apply. Con el operador de extensión, el array puede pasarse directamente al método push.
Aquí tienes otro ejemplo.



Ampliar la aplicación de operadores

(1) Matrices de fusión

El operador de extensión proporciona una nueva forma de escribir la combinación de números.



(2) combinado con asignación deconstruida

Los operadores de extensión pueden combinarse con asignaciones deconstruidas para generar arrays.



Si usas el operador de extensión para asignar el array, solo puede colocarse en el último dígito del parámetro, de lo contrario se reportará un error.



(3) El valor de retorno de la función

Las funciones JavaScript solo pueden devolver un valor y, si es necesario devolver varios valores, solo arrays u objetos. Los operadores de extensión ofrecen una solución alternativa para resolver este problema.



El código anterior toma una línea de datos de la base de datos, extiende el operador y la pasa directamente al constructor Fecha.

(4) Cuerda

Los operadores de extensión también pueden convertir cadenas en matrices reales.



La escritura anterior tiene una ventaja importante, es decir, puede reconocer correctamente caracteres Unicode de 32 bits.



La primera forma de escribir el código anterior, JavaScript reconoce los caracteres Unicode de 32 bits como 2 caracteres, y no hay problema con los operadores de extensión. Así que la función que devuelve correctamente la longitud de la cadena puede escribirse así:



Este es el problema para cualquier función que implique manipular caracteres Unicode de 32 bits. Por lo tanto, es mejor reescribirlos todos con operadores de extension.



En el código anterior, si no usas el operador de extensión, la operación de inversión de cadenas es incorrecta.

(5) Objetos que implementan la interfaz Iterador

Cualquier objeto en la interfaz del Iterador puede convertirse en un verdadero array con un operador de extensión.



En el código anterior, el método querySelectorAll devuelve un objeto nodeList. No es un arreglo, sino un objeto similar a un arreglo. En este caso, el operador de extensión puede convertirlo en un array real porque el objeto NodeList implementa la interfaz Iterador.
Para aquellos objetos tipo array que no tienen una interfaz de iterador desplegada, el operador de extensión no puede convertirlos en un array real.



En el código anterior, ArrayLike es un objeto similar a un array, pero sin desplegar la interfaz Iterador, el operador de extensión informará de un error. En este caso, puedes usar el método Array.from para convertir arrayLike en un array real en su lugar.

(6) Estructuras de aplicación y conjunto, funciones generadoras

El operador de extensión llama internamente a la interfaz Iterador de la estructura de datos, por lo que cualquier objeto con una interfaz Iterador puede usar un operador de extensión, como una estructura de Mapa.



Cuando la función Generador se ejecuta, devuelve un objeto traverser, por lo que también se pueden usar operadores de extensión.



En el código anterior, la variable go es una función generadora y, tras su ejecución, devuelve un objeto de recorrido, y ejecutar un operador de extensión sobre este objeto de recorrido convertirá los valores obtenidos de la travesía interna en un array.
Si usas un operador de extensión para un objeto sin interfaz iteradora, se reportará un error.





Anterior:Implementación de Vue+ElementUI
Próximo:Problema con la publicación del proyecto Angular
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com