Sintaxis extendida versus parámetro de descanso: comprensión de la diferencia
En ES2015, dos nuevas características, sintaxis extendida y parámetros de descanso, brindan formas poderosas de manipular matrices y objetos. Si bien ambos pueden parecer similares, tienen propósitos distintos y cada uno tiene su propia funcionalidad única.
Sintaxis extendida
Sintaxis extendida (representada por tres puntos "..." ) le permite extender o expandir un iterable (como una matriz u objeto) en elementos individuales dentro de otro iterable. Esta característica le permite fusionar o combinar cómodamente múltiples matrices u objetos en uno nuevo.
Por ejemplo, consideremos el siguiente código:
var abc = ['a', 'b', 'c'];
var def = ['d', 'e', 'f'];
var alpha = [ ...abc, ...def ];
console.log(alpha); // alpha == ['a', 'b', 'c', 'd', 'e', 'f'];
En este fragmento, ...abc y ... La sintaxis def spread expande las matrices abc y def en elementos individuales, creando una nueva matriz alfa que contiene todos los elementos de ambas matrices.
Parámetro de descanso
Por otro lado , un parámetro de descanso (indicado por tres puntos "...", precedidos por un identificador) recopila los argumentos restantes pasados a una función en una única matriz. El parámetro de descanso debe ser el último parámetro en la lista de parámetros de la función.
Un ejemplo de un parámetro de descanso en acción es el siguiente:
function sumAll(...numbers) {
let total = 0;
for (let num of numbers) {
total = num;
}
return total;
}
let result = sumAll(1, 2, 3, 4, 5);
console.log(result); // result == 15
En este código, el parámetro ...numbers rest recopila los argumentos restantes pasados a la función sumAll (en este caso, 1, 2, 3, 4 y 5) y crea una única matriz de números.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3