62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
|
---
|
||
|
title: Global Scope and Functions
|
||
|
localeTitle: Ámbito global y funciones
|
||
|
---
|
||
|
## Ámbito global y funciones
|
||
|
|
||
|
El alcance de una variable es su visibilidad; ¿En qué parte del código está disponible la función? Aquí hay una lista de los diferentes ámbitos que puede tener una variable.
|
||
|
|
||
|
* **Ámbito global** : la variable está disponible en todo el código.
|
||
|
* **Alcance local** : Disponible solo en un área determinada (como solo dentro de la función)
|
||
|
* **Ámbito de bloque** : disponible dentro de un área _aún más_ cierta (como una sentencia if)
|
||
|
|
||
|
Su tarea es entender cómo agregar `var` (y no agregar) antes del nombre de una variable, puede cambiar el alcance de la variable.
|
||
|
|
||
|
Cuando agrega `var` antes del nombre de la variable, su alcance está determinado por el lugar donde se coloca. Al igual que:
|
||
|
|
||
|
```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)
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Cuando no lo haces, este es el resultado:
|
||
|
|
||
|
```javascript
|
||
|
num1 = 18; // Global scope
|
||
|
function fun() {
|
||
|
num2 = 20; // Global Scope
|
||
|
if (true) {
|
||
|
num3 = 22; // Global Scope
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Muy bien, aquí está la solución de código básico.
|
||
|
|
||
|
```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);
|
||
|
}
|
||
|
|
||
|
```
|