Regla
No anular función argumentos.
Reasignación de función parámetros puede confundir a
las personas que llaman y hacer depuración la depuración.
Idiomas admitidos: 45+Introducción
Reasignar parámetros de función cambia el valor de los argumentos dentro de la función, haciendo que no esté claro qué valor tiene el parámetro en un momento dado. Cuando se depura, no se puede confiar en que un parámetro siga conteniendo el valor pasado por el invocador. Esto crea confusión para cualquiera que lea el código y dificulta la localización de errores porque el valor del parámetro cambia a lo largo de la ejecución.
Ejemplos de códigos
❌ No conforme:
function processUser(user) {
if (!user) {
user = { id: null, name: 'Guest' };
}
user = { ...user, processedAt: Date.now() };
if (user.age < 18) {
user = { ...user, restricted: true };
}
return user;
}Por qué está mal: En usuario se reasigna varias veces, por lo que es imposible saber lo que el llamante original pasó sin leer toda la función. La depuración muestra los valores modificados, no la entrada real, por lo que es difícil rastrear los problemas hasta el origen.
✅ Conforme:
function processUser(user) {
const currentUser = user || { id: null, name: 'Guest' };
const processedUser = {
...currentUser,
processedAt: Date.now()
};
if (currentUser.age < 18) {
return { ...processedUser, restricted: true };
}
return processedUser;
}
Por qué es importante: Nuevas variables (usuarioactual, usuario procesado) mantienen valores intermedios mientras que el original usuario permanece inalterado. Los depuradores muestran el valor de entrada real, y el código rastrea claramente las transformaciones a través de variables con nombre.
Conclusión
Utilice nuevas variables para las transformaciones en lugar de reasignar parámetros. Esto hace explícito el flujo de datos y preserva la entrada original para la depuración. La ligera verbosidad de las declaraciones de variables adicionales se ve compensada por la mejora de la legibilidad y la depurabilidad.
.avif)
