Skip to content

Commit ea7fd13

Browse files
committed
Merge pull request workshopper#95 from pepoviola/master
add spanish translation for scope challenge
2 parents c51c7a5 + 52da67e commit ea7fd13

2 files changed

Lines changed: 77 additions & 0 deletions

File tree

problems/scope/problem_es.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
3+
# SCOPE ( AMBITO )
4+
5+
El `scope` o ámbito es el conjunto de variables, objetos y funciones a las que tienes acceso.
6+
7+
JavaScript tiene dos ámbitos: `global` y `local`. Una variable que es declarada fuera de la definición de una función es una variable `global`, y su valor es accesible y modificable a través de tu programa. Una variable que es declarada dentro de la definición de una función es una variable `local`. Se crea y se destruye cada vez que se ejecuta la función, y no se puede acceder a su valor ni modificarlo por ningún código fuera de la misma.
8+
9+
Las funciones definidas dentro de otras funciones, conocidas como funciones anidadas, tienen acceso al ámbito de su función padre.
10+
11+
Presta atención a los comentarios en el siguiente código:
12+
13+
```js
14+
var a = 4; // es una variable global, puede ser accedida por las siguientes funciones
15+
16+
function foo() {
17+
var b = a * 3; // b no puede ser accedida por fuera de la función foo, pero puede ser accedida
18+
// por las funciones definidas dentro de foo
19+
function bar(c) {
20+
var b = 2; // otra variable `b` es creada dentro del ámbito de la función bar
21+
// los cambios a esta nueva `b` no afectan a la vieja variable `b`
22+
console.log( a, b, c );
23+
}
24+
25+
bar(b * 4);
26+
}
27+
28+
foo(); // 4, 2, 48
29+
```
30+
IIFE, Immediately Invoked Function Expression( Expresión de Functión Invocada Inmediatamente ), es un patrón común para crear ámbitos locales.
31+
Por ejemplo:
32+
```js
33+
(function(){ // La expresión de la función está entre paréntesis
34+
// las variables definidas aquí
35+
// no pueden ser accedidas por fuera
36+
})(); // la función es inmediatamente invocada
37+
```
38+
## El ejercicio:
39+
40+
Crea un archivo llamado `scope.js`.
41+
42+
En ese archivo, copia el siguiente código:
43+
```js
44+
var a = 1, b = 2, c = 3;
45+
46+
(function firstFunction(){
47+
var b = 5, c = 6;
48+
49+
(function secondFunction(){
50+
var b = 8;
51+
52+
(function thirdFunction(){
53+
var a = 7, c = 9;
54+
55+
(function fourthFunction(){
56+
var a = 1, c = 8;
57+
58+
})();
59+
})();
60+
})();
61+
})();
62+
```
63+
64+
Usa tu conocimiento sobre el ámbito de las variables y ubica el siguiente código dentro de alguna de las funciones
65+
en `scope.js` para que la salida sea `a: 1, b: 8,c: 6`
66+
```js
67+
console.log("a: "+a+", b: "+b+",c: "+c);
68+
```
69+
---

problems/scope/solution_es.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
3+
#EXCELENTE!
4+
5+
Lo hiciste! La segunda función tiene el ámbito que estabamos buscando.
6+
7+
Ejecuta `javascripting` en la consola para seleccionar el siguiente ejercicio.
8+
---

0 commit comments

Comments
 (0)