Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda