What is scoping and hoisting in JavaScript? Levels of scoping in JS

What is scoping and hoisting in JavaScript? Levels of scoping in JS