1
+ /*
2
+ * EJERCICIO:
3
+ * - Crea ejemplos de funciones básicas que representen las diferentes
4
+ * posibilidades del lenguaje:
5
+ * Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
6
+ * - Comprueba si puedes crear funciones dentro de funciones.
7
+ * - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
8
+ * - Pon a prueba el concepto de variable LOCAL y GLOBAL.
9
+ */
10
+
11
+
12
+
13
+
14
+ // Función sin parámetros ni retorno;
15
+ // Retorna el valor de la expresión que se le pasa como parámetro.
16
+
17
+ function felicitar ( ) {
18
+ console . log ( "¡Felices fiestas!" ) ;
19
+ }
20
+ felicitar ( ) ;
21
+
22
+
23
+ // Función con un parámetro;
24
+ function morning ( nombre ) {
25
+ console . log ( "¡Buenos días, " + nombre + "!" ) ;
26
+ }
27
+ morning ( "Raúl" ) ;
28
+
29
+
30
+ // Función add tiene dos parámetros (a, b).
31
+ // Los argumentos (2, 3) se asignan a los parámetros a y b.
32
+ function add ( a , b ) {
33
+ return a + b ;
34
+ }
35
+ console . log ( add ( 2 , 3 ) ) ;
36
+
37
+ //Función dentro de función
38
+ function calcularAreaTriangulo ( base , altura ) {
39
+ function calcularArea ( ) {
40
+ return 0.5 * base * altura ;
41
+ }
42
+
43
+ return calcularArea ( ) ;
44
+ }
45
+
46
+ // Usando la función
47
+ let area = calcularAreaTriangulo ( 5 , 3 ) ;
48
+ console . log ( "El área del triángulo es:" , area ) ;
49
+
50
+
51
+ // Ejemplos de funciones ya creadas en el lenguaje:
52
+ console . log ( "Funciones creadas en javascript" ) ;
53
+
54
+ // Función isFinite() determina si el valor pasado es un número finito.
55
+ // Si el valor no es un número, primero intenta convertirlo a uno.
56
+ // Si es un número finito, devuelve true; en caso contrario, devuelve false.
57
+ console . log ( isFinite ( 10 ) ) ; // true (10 es un número finito)
58
+ console . log ( isFinite ( - 5.5 ) ) ; // true (-5.5 es finito)
59
+ console . log ( isFinite ( Infinity ) ) ; // false (Infinity no es finito)
60
+ console . log ( isFinite ( NaN ) ) ; // false (NaN no es un número finito)
61
+ console . log ( isFinite ( "10" ) ) ; // true (El string "10" se convierte a número)
62
+ console . log ( isFinite ( "Hello" ) ) ; // false (No puede convertirse en número)
63
+ console . log ( isFinite ( undefined ) ) ; // false (No puede convertirse en número)
64
+
65
+ //Función isNaN() determina si el valor pasado es NaN (Not-a-Number).
66
+ // Si el valor no es un número, intenta convertirlo.
67
+ // Si después de la conversión sigue siendo NaN, devuelve true; de lo contrario, devuelve false.
68
+ console . log ( isNaN ( NaN ) ) ; // true (El valor es NaN)
69
+ console . log ( isNaN ( "Hello" ) ) ; // true (No puede convertirse a número)
70
+ console . log ( isNaN ( undefined ) ) ; // true (No puede convertirse a número)
71
+ console . log ( isNaN ( 10 ) ) ; // false (10 es un número válido)
72
+ console . log ( isNaN ( "10" ) ) ; // false (El string "10" se convierte a número)
73
+ console . log ( isNaN ( true ) ) ; // false (true se convierte a 1, que es un número)
74
+
75
+ // Función Number.isNaN() es más estricto y devuelve true sólo si el valor es exactamente NaN, sin coerción.
76
+ console . log ( Number . isNaN ( "Hello" ) ) ; // false (Strict check: "Hello" is not NaN, it's a string)
77
+
78
+ //Función parseInt() convierte una cadena de texto en un número entero.
79
+ // Si la cadena no contiene un número, devuelve el valor de defaultValue.
80
+ // Si la cadena contiene un número, devuelve el número. Si la cadena no puede ser convertida a número, devuelve NaN.
81
+ console . log ( parseInt ( "10" ) ) ; // 10
82
+ console . log ( parseInt ( "Hello" ) ) ; // 0
83
+ console . log ( parseInt ( "10" , 16 ) ) ; // 16
84
+ console . log ( parseInt ( "10" , 10 ) ) ; // 10
85
+ console . log ( parseInt ( "0x10" , 16 ) ) ; // 16
86
+ console . log ( parseInt ( "010" , 2 ) ) ; // 2
87
+
88
+
89
+ //Variable local, declarada en la función y variable global o declarada fuera de la función.
90
+
91
+ function globalVariable ( ) {
92
+ var globalVariable = "globalVariable" ;
93
+ function localVariable ( ) {
94
+ var localVariable = "localVariable" ;
95
+ console . log ( globalVariable ) ; // globalVariable
96
+ console . log ( localVariable ) ; // localVariable
97
+ }
98
+ localVariable ( ) ;
99
+ }
100
+ globalVariable ( ) ;
101
+
102
+
103
+ // Global variables
104
+ var street = "Calle Mayor" ;
105
+ var city = "Madrid" ;
106
+
107
+ function myGlobalAddress ( ) {
108
+
109
+ // Local variables
110
+ var country = "España" ;
111
+ var building = "III" ;
112
+
113
+ return building + " " + street + ", " + city + ", " + country ;
114
+ }
115
+
116
+ console . log ( myGlobalAddress ( ) ) ; // invocamos desde fuera de la función
117
+
118
+ function myLocalDetails ( ) {
119
+ var floor = "3rd-floor" ;
120
+ var flat = "1B" ;
121
+ var door = "left" ;
122
+ console . log ( floor + " " + flat + " " + door ) ; // invocamos desde dentro de la función
123
+ }
124
+
125
+ myLocalDetails ( ) ; // podemos invocar myLocalDetails desde fuera, pero no podemos acceder a las variables dentro de la función.
126
+ // Las variables son locales de esa función.
127
+
128
+
129
+ /*DIFICULTAD EXTRA (opcional):
130
+ * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
131
+ * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
132
+ * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
133
+ * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
134
+ * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
135
+ * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
136
+ */
137
+ function myString ( multiploDe3 , multiploDe5 ) {
138
+ let count = 0 ;
139
+ let i = 1 ;
140
+
141
+ while ( i <= 100 ) {
142
+ if ( i % 3 === 0 && i % 5 === 0 ) {
143
+ console . log ( multiploDe3 + " y " + multiploDe5 ) ;
144
+ count ++ ;
145
+ } else if ( i % 3 === 0 ) {
146
+ console . log ( multiploDe3 ) ;
147
+ count ++ ;
148
+ } else if ( i % 5 === 0 ) {
149
+ console . log ( multiploDe5 ) ;
150
+ count ++ ;
151
+ } else {
152
+ console . log ( i ) ;
153
+ }
154
+ i ++ ;
155
+ }
156
+ return count ;
157
+ }
158
+
159
+ console . log ( myString ( "Multiplo de 3" , "Multiplo de 5" ) ) ;
0 commit comments