Static scoping, also known as lexical scoping, is a variable scoping mechanism where the scope of a variable is determined by its position within the source code, and nested functions have access to variables declared in their outer scope. This allows for more predictable and understandable code behavior, as the scope of a variable can be determined at compile time without considering the program's runtime state.