3 ms·
Except that any variation of these doesn't produce the same thing as a declaration, since function declarations hoist and function expression assignments do not
by _getify 11y ago
Except that any variation of these doesn't produce the same thing as a declaration, since function declarations hoist and function expression assignments do not.
Most people don't like hoisting -- and I agree that variable hoisting is crazy. I'd never advocate this:
a = 2;
var a;
But function hoisting I find super useful. I always prefer to write my files like this:
foo();
bar();
// ....
function foo() { .. }
function bar() { .. }
...because when I open a file, I don'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.
I've found this to be much more useful in code maintenance.
- clessg 11y agoI agree on function declarations even though I avoid hoisting in other situations. I don't see any serious downsides to using function declarations (unless within a function, perhaps), and I find it easier to read, especially in ES6: `export function diameter` vs. `export const diameter = ...`.
- mquander 11y agoIf you just write everything in order of usage, the executable code still winds up in a very easy-to-find place -- the very bottom, rather than the top.
- pixel67 11y agoThat's how I write my JS as well. It's like speaking