Binding
{{GlossarySidebar}}
In programming, a binding is an association of an {{glossary("identifier")}}
with a value. Not all bindings are {{glossary("variable", "variables")}}
— for example, function {{glossary("parameter", "parameters")}}
and the binding created by the {{jsxref("Statements/try...catch", "catch (e)")}}
block are not “variables” in the strict sense. In addition, some bindings are implicitly created by the language — for example, {{jsxref("Operators/this", "this")}}
and new.target
in JavaScript.
A binding is {{glossary("mutable")}}
if it can be re-assigned, and {{glossary("immutable")}}
otherwise; this does not mean that the value it holds is immutable.
A binding is often associated with a {{glossary("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
{{jsxref("Statements/var", "var")}}
{{jsxref("Statements/let", "let")}}
{{jsxref("Statements/const", "const")}}
{{jsxref("Statements/function", "function")}}
{{jsxref("Statements/class", "class")}}