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, lo que dificulta saber qué valor tiene el parámetro en un momento dado. Al depurar, no se puede confiar en que un parámetro siga conteniendo el valor pasado por quien lo invoca. Esto genera confusión para cualquiera que lea el código y complica la localización de errores, ya que el valor del parámetro cambia a lo largo de la ejecución.
Ejemplos de código
❌ 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é es incorrecto: El usuario el parámetro se reasigna varias veces, lo que hace imposible saber qué pasó el llamador original sin leer toda la función. La depuración muestra valores modificados, no la entrada real, lo que dificulta rastrear los problemas hasta su 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é esto importa? Nuevas variables (currentUser, processedUser) retienen valores intermedios mientras que el original usuario el parámetro permanece sin cambios. 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 una mejor legibilidad y capacidad de depuración.
.avif)
