In programming, a binding is an association of an identifier with a value. Not all bindings are variables — for example, function parameters and the binding created by the catch (e) block are not "variables" in the strict sense. In addition, some bindings are implicitly created by the language — for example, this and in JavaScript.

A binding is mutable if it can be re-assigned, and immutable otherwise; this does not mean that the value it holds is immutable.

A binding is often associated with a scope. Some languages allow re-creating bindings (also called redeclaring) within the same scope, while others don't; in JavaScript, whether bindings can be redeclared depends on the construct used to create the binding.

See also