Just like we can write it in the form:
function Hello () {
alert("Hello");
}
Hello();
var Hello = function () {
alert("Hello");
}
Hello();
In fact, they are all the same.
But when we modify the functions, we will find very strange problems.
We will see this result: Hello World is output twice in a row. Rather than the Hello and Hello World we imagined.
This is because Javascript is not completely interpreted and executed in sequence, but Javascript is "precompiled" before interpretation. During the precompilation process, the defined functions will be executed first, and all functions will be executed first. The var variable is created and the default value is undefined to improve the execution efficiency of the program. In other words, the above piece of code is actually pre-compiled by the JS engine into this form:
We can pass The above code clearly shows that functions are also data and variables. We can also assign (reassign) values to "functions". Of course, in order to prevent this situation, we can also do this: