I've always preferred `function`-style over lambda style (`() => {}`) for named functions in #JavaScript because I think it's less confusing for newcomers and you can take advantage of #hoisting which can be a useful feature.
However, thinking about it again, hoisting can also lead to a lot of confusion as it leads to temporal dead zone which can be super confusing, even to experienced developers.
```
doSomething();
let value = 1;
function doSomething(): void {
// ERR: Cannot access 'value' before initialization
console.log(value);
}
```
Based on that, I wonder if lambda style might actually be less confusing for new JS devs just because it avoids that entire class of footgun.
In practice I find this kind of issue to be relatively rare, but maybe new devs encounter it more frequently than I think.
I guess the question here is: Is JS function hoisting a useful feature or an antipattern to avoid?