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?
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?
The difference is
function square
is defined at parse time whereassquare = function
is defined at run time.square
is a variable which holds anonymous function.function square(){}
always executed atglobal 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));
Try putting function defincation first
square = function (n) {
return n * n;
}
console.log(square(5));