Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
¿Por qué dice que calcAverage no es una función, cuando es

Creé una función simple para calcular el promedio de 3 números:

 let calcAverage = (v1,v2,v3) =>{ calcAverage = v1+v2+v3 / 3; return calcAverage } const d1 = calcAverage(44, 23,71) const k1 = calcAverage(44, 23,71) console.log(d1)

si comenta: const k1 = calcAverage(44, 23,71) entonces notará que const d1 = calcAverage(44, 23,71) funciona, pero ¿por qué dice 'Error de tipo no detectado: calcAverage no es una función para esta línea de código: const k1 = calcAverage(44, 23,71) ? esto no tiene ningún sentido para mí. como hago para que funcionen los dos? y ¿por qué incluso dice que calcAverage no es una función en primer lugar?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Porque reasignó calcAverage en esta línea

 calcAverage = v1+v2+v3 / 3;

lo que hizo calcAverage un valor number en lugar de una función

¿Por qué no devuelves estos cálculos inmediatamente?

 return v1+v2+v3 / 3;
about 4 years ago · Juan Pablo Isaza Denunciar

0

Al llamar a calcAverage por primera vez, de hecho es una función. Sin embargo, lo sobrescribe dentro de la función misma para que sea un number :

 calcAverage = v1+v2+v3 / 3;

Simplemente cambie el nombre de la variable dentro de la función para que funcione como espera:

 const calcAverage = (v1,v2,v3) =>{ const result = v1+v2+v3 / 3; return result; } const d1 = calcAverage(44, 23,71); const k1 = calcAverage(44, 23,71); console.log(d1);

Actualizar:

Para ver claramente el problema, puede cerrar sesión en el tipo de calcAverage para cada una de las llamadas a funciones:

 let calcAverage = (v1,v2,v3) =>{ calcAverage = v1+v2+v3 / 3; return calcAverage; } console.log("Type before first call: ", typeof calcAverage); const d1 = calcAverage(44, 23,71); console.log("Type before second call: ", typeof calcAverage); const k1 = calcAverage(44, 23,71);

Por cierto, esto muestra muy bien la ventaja de usar const sobre let para constantes reales. Si hubiera declarado calcAverage como const , no se habría encontrado con este problema.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Encontré una variable dentro de la función con el mismo nombre de función. entonces, cuando llama a calAverage por segunda vez, no es una función, sino el resultado de algún cálculo. también hice funcionar como una constante

 const calcAverage = (v1, v2, v3) => { let calcAverageVal = v1 + v2 + v3 / 3 return calcAverageVal } const d1 = calcAverage(44, 23, 71) const k1 = calcAverage(44, 23, 71) console.log(d1)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda