**Hoisting in JavaScript**:
Hoisting is like when you magically lift things up. In JavaScript, it means that declarations (like variables and functions) are lifted or brought to the top of their scope during the code execution.
**Example**:
console.log(x); // Output: undefined
var x = 10;
Even though we're trying to `console.log(x)` before declaring `x`, JavaScript doesn't give an error. Instead, it "hoists" the declaration of `x` to the top, which means it's like saying `var x;` is moved to the very top of the scope:
var x;
console.log(x); // Output: undefined
x = 10;