62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
|
---
|
||
|
title: Global Scope and Functions
|
||
|
---
|
||
|
## Global Scope and Functions
|
||
|
|
||
|
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
|
||
|
The scope of a variable is its visibility; where in the code is the function available? Here is a list of the different scopes a variable can have.
|
||
|
|
||
|
* **Global scope**: The variable is available throughout the code
|
||
|
* **Local scope**: Available in only a certain area (like only within function)
|
||
|
* **Block scope**: Available within an *even more* certain area (like an if-statement)
|
||
|
|
||
|
Your task is to understand how adding `var` (and not adding) before a variable name, can change the variable's scope.
|
||
|
|
||
|
When you add `var` before the variable name, its scope is determined by where it is placed. Like so:
|
||
|
|
||
|
```javascript
|
||
|
var num1 = 18; // Global scope
|
||
|
function fun() {
|
||
|
var num2 = 20; // Local (Function) Scope
|
||
|
if (true) {
|
||
|
var num3 = 22; // Block Scope (within an if-statement)
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
When you don't, this is the result:
|
||
|
|
||
|
```javascript
|
||
|
num1 = 18; // Global scope
|
||
|
function fun() {
|
||
|
num2 = 20; // Global Scope
|
||
|
if (true) {
|
||
|
num3 = 22; // Global Scope
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Alright, here is the basic code solution.
|
||
|
|
||
|
```javascript
|
||
|
// Declare your variable here
|
||
|
var myGlobal = 10;
|
||
|
|
||
|
function fun1() {
|
||
|
oopsGlobal = 5;
|
||
|
|
||
|
}
|
||
|
|
||
|
// Only change code above this line
|
||
|
function fun2() {
|
||
|
var output = "";
|
||
|
if (typeof myGlobal != "undefined") {
|
||
|
output += "myGlobal: " + myGlobal;
|
||
|
}
|
||
|
if (typeof oopsGlobal != "undefined") {
|
||
|
output += " oopsGlobal: " + oopsGlobal;
|
||
|
}
|
||
|
console.log(output);
|
||
|
}
|
||
|
```
|