O'Reilly logo
  • Ahmed Elgendy thinks this is interesting:

Function expressions are obviously different because they aren’t defined until they are evaluated. So, even if you assign the function expression to a global variable, like we did with fly, you can’t use that variable to invoke a function until after it’s been defined.

From

Cover of Head First JavaScript Programming

Note

What is the difference between evaluation and definition?