Anonymous Function vs Function Expression (vs Function Declaration)

This question is more for my curiosity than anything else, but I’m currently wondering about the difference between an anonymous function and a function expression, specifically in regards to being inside another function. I understand that an anonymous function runs as soon as the console reaches the code, whereas a function expression still needs to be called, but I’m wondering if there’s any practical difference between the two when used as a nested function.

Furthermore, I suppose I should ask if there’s any merit in using a function declaration as a nested function. I don’t tend to do that because I feel like it clogs up the code, and is unnecessary as it can’t be called anywhere outside the main function, but I could be wrong, so it’s worth asking.

I should probably qualify that this is for Javascript, if it matters.