From 6e5d3686821a35cc6f20bc65f8035e054a54f6e4 Mon Sep 17 00:00:00 2001 From: Levi Pearson Date: Wed, 27 Jan 2016 20:10:11 -0700 Subject: [PATCH] Talk for LDUG 1/27/2016 --- VariableScope.md | 320 ++++++++++++++++++++++++++++++++++++++++++++++ VariableScope.pdf | Bin 0 -> 44835 bytes 2 files changed, 320 insertions(+) create mode 100644 VariableScope.md create mode 100644 VariableScope.pdf diff --git a/VariableScope.md b/VariableScope.md new file mode 100644 index 0000000..7ecce1a --- /dev/null +++ b/VariableScope.md @@ -0,0 +1,320 @@ +--- +title: Variable Scope +subtitle: Not An Oral Hygeine Product +author: Levi Pearson +... + +# Introduction + +## Goals + ++ Understand How Variable Naming Works ++ Learn What "Scope" Really Means ++ See How Different Languages Handle Scope ++ Identify Tricky Bits in Javascript Scope Rules + +# Variables, Names, and Scope + +## On the difficulty of names + +> There are only two hard things in Computer Science: +> **cache invalidation** and **naming things**. +> +> -- Phil Karlton + +## Some definitions + ++ A **variable** is a **name** bound to a **storage location** within an + **environment** + ++ An **environment** holds all variable bindings visible at some point in a + program. + ++ Sometimes an environment is called a **context** + +## What about scope? + ++ The **scope** of a variable refers to the region of the program where its + binding is visible in the environment + +*or* + ++ **Scope** is the *property of a variable* that defines what part of the + program its name can be used in to identify the variable + +## Static vs. dynamic + ++ **Static** or **lexical**: Scope determined just by text of program + ++ **Dynamic**: Scope affected by bindings in the run-time stack + +## Early vs. late + ++ Lexical scope can be determined at compile-time; sometimes called **early +binding** + ++ Dynamic scope relies on run-time information; sometimes called **late +binding** + +## Shadowing + ++ Scopes of variables with the same name can *overlap* + ++ Rules determine which scope "wins" at any point + ++ The *losers* are said to be **shadowed** by the *winner* + ++ Rule is usually a variation on "most recent declaration wins" + +# Levels of scope + +## Global scope + ++ **Global** scope extends through the whole program + ++ Sometimes restricted to just after the declaration. + +## Function scope + ++ **Function** scope extends through the whole function body + ++ Sometimes restricted to just after the declaration, e.g. C + ++ When not restricted, it is sometimes called **hoisting** the declaration + ++ Hoisting affects scope, but not initialization point + +* * * + +~~~{.javascript} +// Shadowing and Hoisting + +var x = 1; + +function foo() { + console.log(x); + var x = 2; + console.log(x); +} + +console.log(x); +~~~ + +* * * + +~~~{.javascript} +// Shadowing and Hoisting + +var x = 1; + +function foo() { + console.log(x); // x is undefined! + var x = 2; + console.log(x); // prints 2 +} + +console.log(x); // prints 1 +~~~ + +## Block scope + ++ **Block** scope extends through a compound statement block + ++ Variables declared in control statements (like `for`) are scoped to the block + ++ Javascript (pre-ES6) and Python don't have block scopes! + ++ ES6 keeps function scope for `var`, adds `let` and `const` for block scope + +* * * + +~~~{.javascript} +// Block Scope +var y = 2; +function foo() { + let x = 5; + for (let x = 0; x < 3; x++) { + let y = x + 1; + console.log(y); + } + console.log(x); + console.log(y); + let y = 3; + console.log(y); +} +console.log(y); +~~~ + +* * * + +~~~{.javascript} +// Block Scope +var y = 2; +function foo() { + let x = 5; + for (let x = 0; x < 3; x++) { + let y = x + 1; + console.log(y); // prints 1, 2, 3 + } + console.log(x); // prints 5 + console.log(y); // ReferenceError + let y = 3; + console.log(y); // prints 3 +} +console.log(y); // prints 2 +~~~ + +## Other scopes + ++ In C and C++, there is a **file** scope + ++ Functional languages often provide **expression** scope + ++ Languages with module systems provide **module** scope + ++ Python has a module system and module scope; ES6 does too + +## Dynamic scope + ++ Dynamic scope refers to time periods instead of text regions + ++ Dynamic global scope refers to the whole program execution + ++ Dynamic function scope + + starts when execution enters the function body + + extends through any function calls in the body + + ends when the function returns + ++ Dynamic scope is default in Bourne-style shells, PowerShell, Emacs Lisp + ++ Dynamic scope is optional in Perl, Common Lisp, and others + +* * * + +~~~{.javascript} +// In a hypothetical dynamically-scoped Javascript +var x = 1; + +function foo() { + var x = 2; + bar(); +} + +function bar() { + console.log(x); +} + +foo(); +bar(); +~~~ + +* * * + +~~~{.javascript} +// In a hypothetical dynamically-scoped Javascript +var x = 1; + +function foo() { + var x = 2; + bar(); +} + +function bar() { + console.log(x); +} + +foo(); // prints 2 +bar(); // prints 1 +~~~ + +# Tricky Bits + +## Assignment + ++ What should be the scope of a variable created by assignment? + ++ Local? + + Can't assign to a variable in enclosing environment + + Will create a new variable shadowing the one you wanted to change + + Python works this way + ++ Global? + + Might accidentally change existing global instead of making a new one + + Can work around it by declaring all your variables + + Javascript works this way + ++ Just make declaration of variables mandatory! + +## Closures + ++ A variable is **free** within a function body if: + + it is referenced in the body + + it is not declared in the body + + it is not a parameter to the function + ++ A function *closes over* free variables bound in an enclosing environment + ++ The variables are found in its **closure** + ++ We call a function returned from its enclosing environment a **closure** too + ++ Bindings in a closure keep the scope from their *definition* point, even if + the function is invoked in a different environment + +* * * + +~~~{.javascript} +// Fun with closures! +function a() { + var x = 0; + return function() { + x++; console.log(x); + } +} +function b(g) { + var x = 0; + g(); console.log(x); +} +var c1 = a(), c2 = a(); +b(c1); +b(c2); +b(c1); +~~~ + +* * * + +~~~{.javascript} +// Fun with closures! +function a() { + var x = 0; + return function() { + x++; console.log(x); + } +} +function b(g) { + var x = 0; + g(); console.log(x); +} +var c1 = a(), c2 = a(); +b(c1); // prints 1, 0 +b(c2); // prints 1, 0 +b(c1); // prints 2, 0 +~~~ + +## This + ++ It is dynamically scoped, late-bound + ++ Rules for `this`: + 1. invoked as a function, it is the global object + 2. invoked with `new`, it is the object the constructor will return + 3. invoked as a method, it is the object before the `.` + 4. invoked with `call` or `apply`, it's what you asked it to be + 5. wrapped by `Function.prototype.bind`, it's `bind`'s argument + 6. invoked as a DOM Event handler, it's the element the event fired from + ++ For closure creation, `this` is not a free variable + ++ Except for ES6 arrow functions! + +# Thanks for listening! diff --git a/VariableScope.pdf b/VariableScope.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6bf96b7df749784679d31945ce45bf5df65f9dd4 GIT binary patch literal 44835 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 literal 0 HcmV?d00001