1. What is the difference between `let`, `const`, and `var` in JavaScript?
`var` is function-scoped and hoisted. `let` and `const` are block-scoped and not hoisted. `const` prevents reassignment but not mutation of objects/arrays. Best practice: always use `const` by default, `let` when you need to reassign, never `var`.