Asked by Sohail · · 1 answer
The difference is that functionOne
is a function expression and so only defined when that line is reached, whereas functionTwo
is a function declaration and is defined as soon as its surrounding function or script is executed (due to hoisting
).
For example, a function expression:
// TypeError: functionOne is not a function
functionOne();
var functionOne = function() {
console.log("Hello!");
};
And, a function declaration:
// Outputs: "Hello!"
functionTwo();
function functionTwo() {
console.log("Hello!");
}
function declarations defined inside blocks were taken care of conflictingly between browsers. Strict mode (introduced in ES5) settled this by scoping function declarations to their enclosing block.
0
0