Except that any variation of these doesn&#x27;t produce the same thing as a declaration, since function declarations hoist and function expression assignments do not.<p>Most people don&#x27;t like hoisting -- and I agree that variable hoisting is crazy. I&#x27;d never advocate this:<p><pre><code>    a = 2;
    var a;
</code></pre>
But function hoisting I find super useful. I always prefer to write my files like this:<p><pre><code>    foo();
    bar();
    
    &#x2F;&#x2F; ....
    
    function foo() { .. }
    
    function bar() { .. }
</code></pre>
...because when I open a file, I don&#x27;t want to go hunting for any executable code, I just want to look at the very top. Function declaration hoisting lets me put those definitions at the bottom and the code that uses them at the top.<p>I&#x27;ve found this to be much more useful in code maintenance.