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

162
Vistas
Why is it saying that calcAverage is not a function, when it is

I created a simple function to calcluate the average of 3 numbers:

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)

if you comment out: const k1 = calcAverage(44, 23,71)then you will notice that the const d1 = calcAverage(44, 23,71)works, but why does it say 'Uncaught TypeError: calcAverage is not a function for this line of code: const k1 = calcAverage(44, 23,71)? this doesn't make any sense to me. how do I make both of them work? and why is it even saying that calcAverage is not a function i the first place?

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

0

Because you reassigned calcAverage in this line

calcAverage = v1+v2+v3 / 3;

which made calcAverage a number value instead of a function

why don't you just return this calculations immediately

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

0

When calling calcAverage for the first time, it indeed is a function. However, you overwrite it within the function itself to be a number:

calcAverage = v1+v2+v3 / 3;

Simply change the variable name inside the function to make it work as you expect:

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);

Update:

To clearly see the issue, you can log out the type of calcAverage for each of the function calls:

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);

This nicely shows the advantage of using const over using let for actual constants, by the way. If you would have declared calcAverage as a const, you wouldn't have run into this issue.

about 4 years ago · Juan Pablo Isaza Denunciar

0

i found a variable inside the function with the same function name . so when you call calAverage second time it is not a function instead it is a resultof of some calculation. also i made function as a constant one

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