Non-local variable: Difference between revisions

Content deleted Content added
Was (reduced): v. be not the global scope.
Tags: Mobile edit Mobile web edit
KZ737 (talk | contribs)
 
(4 intermediate revisions by 3 users not shown)
Line 1:
{{Short description|In computer programming, a variable which is not defined in the local scope}}

{{More citations needed|date=January 2025}}
In [[programming language theory]], a '''non-local variable''' is a variable that is not defined in the local [[Scope (computer science)|scope]]. While the term can refer to [[global variablesvariable]]s, it is primarily used in the context of [[nested function|nested]] and [[anonymous function]]s where some variables can be in neither the [[local scope|local]] nor the [[global scope]].
 
In [[Lua (programming language)|Lua]] they are called the ''upvalues'' of the function.<ref>''[http://www.lua.org/pil/contents.html Programming in Lua (first edition)],'' "[http://www.lua.org/pil/27.3.3.html 27.3.3 – Upvalues]"</ref>
Line 16 ⟶ 19:
</syntaxhighlight>
 
In JavascriptJavaScript, the locality of a variable is determined by the closest <code>var</code> statement for this variable. In the following example, <code>x</code> is local to <code>outer</code> as it contains a <code> var x</code> statement, while <code>inner</code> doesn't. Therefore, x is non-local to <code>inner</code>:
<syntaxhighlight lang="javascript">
function outer() {
Line 44 ⟶ 47:
==Notes==
{{reflist}}
 
== References ==
* Aho, Lam, Sethi, and Ullman. "7.3 Access to Nonlocal Data on the Stack". ''[[Compilers: Principles, Techniques, & Tools]]''. Second edition.