What are the differences between variables created using let, var or const?

What is a closure, and how/why would you use one?