Interpreta Interview Question

What is hoisting in JavaScript and how does it work?