Function as variable in JavaScript

So, in the previous lesson, we found out that by referring to a function without parentheses, we get its source code.

In fact, everything is much more interesting. In JavaScript, unlike other languages, functions are just like the values of variables, just like numbers, strings, and arrays.

Let's look at an example. Suppose we have, for example, the function func:

function func() { console.log('!'); }

We don't actually have the function func. We have the variable func that stores the source code of the function.

We can, for example, overwrite the variable func with something else, such as a string. In this case, the function func will no longer be a function, but a string. Look at the example:

function func() { console.log('!'); } func(); // shows '!' func = 'string'; // overwrites the variable func console.log(func); // shows 'string'

Make the function func that will return some string through return.

Print the result of the function func with alert to the console.

Print the source code of the function func with alert to the console.

Write the number 123 into the variable func, thus overwriting the function in this variable. Print the new value of the variable func to the console.