Block scope is a concept introduced in ECMAScript 6 (ES6) to define variables within a specific block of code. A block is typically delimited by curly braces {} and can include statements like loops (for, while), conditionals (if, switch), and function declarations.
In JavaScript, prior to ES6, variables declared with var had function scope or global scope. However, with the introduction of let and const keywords, you can now declare variables with block scope. Block scope restricts the visibility and accessibility of variables to the specific block in which they are defined.