-1

As described in MDN Javascript. This code gives output as 25.

console.log(square(5));
function square(n) { return n*n }

But this code doesn't.

console.log(square(5));
square = function (n) {
  return n * n;
}

Why so?

ThisClark
  • 14,352
  • 10
  • 69
  • 100
Linus Choudhury
  • 139
  • 2
  • 9

2 Answers2

2

The difference is function square is defined at parse time whereas square = function is defined at run time. square is a variable which holds anonymous function. function square(){} always executed at global context

To get the better understanding, Read about variable hoisting in JavaScript

To make it work, define the variable which holds the function expression before calling it.

var square = function(n) {
  return n * n;
}
alert(square(5));
Rayon
  • 36,219
  • 4
  • 49
  • 76
-1

Try putting function defincation first

square = function (n) {
  return n * n;
}
console.log(square(5));
Arjun
  • 3,248
  • 18
  • 35