Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!