forked from omiras/functions-playground-javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplay3.js
89 lines (58 loc) · 2.39 KB
/
play3.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**
* la palabra clave 'return'
*/
/**
* Las funciones pueden devolver un valor.
* Esto se consigue mediante la palabra clave 'return'
*
*/
function siempreDevuelvoLoMismo() {
return "Gato!";
}
let x = siempreDevuelvoLoMismo()
console.log("Gato?", x);
/**
* Evidentemente, que una función siempre devuelve lo mismo, no es (normalmente) muy útil.
* Vamos a definir una función que sume dos números; y devuelva el resultado
*/
function suma(a, b) {
let resultado = a + b;
return resultado;
}
let res = suma(1, 2);
console.log("Suma 1:", res);
/**
* Evidentemente, podemos pasar el valor "constante"; pero también podriamos pasar el valor de una variable para realizar dicha suma
*/
let numero1 = 5
let numero2 = 10
let otroResultado = suma(numero1, numero2)
console.log("Suma 2:", otroResultado)
// Fijaos que aquí vemos una de las grandes ventajas de las funciones. Estamos REUTILIZANDO un código en varias partes de nuestro script; pero que se comporta de manera diferente en función del valor de los parámetros que le pasamos (sí, esta función es muy tontita y podríamos hacer 5 + 10! Es solo un ejemplo)
/**
* Vamos a ver algo interesante, en este ejemplo, aparentemente igual
*/
let a = 5;
let b = 10;
let resultado = suma(a, b);
console.log("Suma 3:", resultado);
/**
* Investiga la función 'suma'. ¿Cómo es posible que usamos el mismo nombre 'a' y 'b' para declarar las variables, y no obtenemos ningún error? También declaramos la variable 'resultado', la cúal también se declara dentro de la función!
*/
/**
* A esto se le llama 'ámbito' de una variable, o en inglés, scope. https://desarrolloweb.com/articulos/517.php
*
* Menudo galimatias si tuvieramos que tener en cuenta el nombre de las variables que se usan dentro de TODAS las funciones.
*
* Para ello, las variables declaradas dentro de una función, NO PUEDEN ser accedidas, ni modificadas, desde fuera de la función
*
*/
/**
* Esto se puede resumir en : "lo que ocurre dentro de una función, incluido el nombre de sus parámetros, queda dentro de una función". Como en la isla de las tentaciones
*/
function resta(c, d) {
let resultado_resta = c - d
return resultado_resta
}
resta(1, 2)
console.log(resultado_resta) // Va a dar 'undefined'. En este punto el script no tiene ni idea donde esta definida la variable 'resultado_resta'; pues no está definida en su ámbito o scope