Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Función que no devuelve nada, sin parámetros
Función que no devuelve nada, con parámetros
<script>
function saludar(nombre){
console.log('Buenas tardes ' + nombre);
}
saludar('Pablo');
</script>
Ejercicios: funciones
Resolveremos los siguientes ejercicios definiendo una función con parámetros de entrada
1. Crear y llamar a un método que reciba como parámetro de entrada un valor booleano y muestre «Sí, eso es cierto» si el valor es true, y «No, eso es falso» si el valor es false.
2. Ejercicio «hoyQuieroComer»
Crear una función llamada «hoyQuieroComer» que recibe un parámetro “comida” cuyo valor será «garbanzos».
Cuando llamemos a la función se mostrará un log indicándonos lo que deseamos comer.

3. Crear una función llamada calcularCubo que recibe un número, calcule su cubo y muestre el resultado por consola. Llamar a la función pasándole el valor 3.
4. Crear una función llamada calcularVelocidad que recibirá la velocidad en Km/hora y la mostrará en metros/hora.
A la función le pasaremos como parámetro de entrada 3 kilómetros/hora y deberíamos visualizar 3000 metros/hora.
5. Crear una función llamada calcularArea que recibirá el ancho y el alto de un rectángulo y calculará su area.
Cuando una función recibe varios parámetros, estos irán separados por coma.
calculaArea(alto, ancho);
6. Crear y llamar a una función que recibe la base y la altura de un triángulo y calcula su área.
Area triángulo = base*altura/2
7. Crear estas dos funciones:
- calculaPerimetro(radio); Perímetro de la circunferencia = 2*Math.PI*radio
- calculaArea(radio); Area de la circunferencia = Math.PI*radio2
Función que devuelve un valor

Función que no devuelve nada
function noDevuelveNada(a, b){
const resultado = a + b;
console.log(resultado);
}
noDevuelveNada(2,3);
Función que devuelve algo
function devuelveValor(a,b){
const resultado = a + b;
return resultado;
}
const valorDevuelto = devuelveValor(2,3);
console.log(valorDevuelto);
Aclaración mega importante:
Este código:
const v = calcularPresuputesto();
No significa: v es igual a calcularPresupuesto(). Porque entonces v sería una función y v es un valor concreto.
Significa: v es igual a lo que devuelve calcularPresupuesto().
Preguntas que debes saber responder para todas las funciones que hagas
1. ¿En que línea has definido la función?
2. ¿Enque línea has llamado a la función?
3. ¿Cuantos parámetros de entrada tiene la función?
4. ¿Cómo se llaman los parámetros de entrada de la función?
4. ¿La función devuelve algo?
1. function calcularSuma( numero1, numero2) {
2. const resultado = numero1 + numero2;
3. return resultado;
4. }
5.
6. calcularSuma(3,4)
Ejercicios 2
1. ¿Qué valor de x se mostrará en la consola?
function hello() {
return "Hi!";
}
const v = hello();
console.log(v);
"Hi!"
2. ¿Qué valor de x se mostrará en la consola?
function reply(phrase) {
return phrase;
}
const x = reply("How do you do?");
console.log(x); // ¿Qué valor de x se mostrará en la consola?
"How do you do?"
3. ¿Qué valor de x se mostrará en la consola?
function whereIs(name) {
return "Dónde esta " + name + "?";
}
const x = whereIs("Jacky");
x = "Dónde esta Jacky?"
4. Escribe una función echo que devuelva el valor que recibe como parámetro.
echo("Greta");
debería devolver «Greta» y
echo("CO2");
debería devolver «CO2».
5. Escribe una función saludar que reciba una parámetro y devuelva el texto «Hola <parametro>!»
Por ejemplo,
saludar("Ada");
Debería devolver «Hola Ada!»
saludar("Grace");
Debería devolver «Hola Grace!»
6. Añade los operadores booleanos correctos para que la siguiente función tenga sentido.
function testGreaterThan(val) {
if (val) { // Cambia esta línea
return "Por encima de 100";
}
if (val) { // Cambia esta línea
return "Por encima de 10";
}
return "10 o menos";
}
7. Añade los operadores booleanos correctos para que la siguiente función tenga sentido.
function testGreaterOrEqual(int val) {
if (val) { // Cambia esta línea
return "20 or más";
}
if (val) { // Cambia esta línea
return "10 o más";
}
return "menos de 10";
}
8. Añade los operadores booleanos correctos para que la siguiente función tenga sentido.
function testLessThan(val) {
if (val) { // Cambia esta línea
return "Por debajo de 25";
}
if (val) { // Cambia esta línea
return "Por debajo de 55";
}
return "55 o más";
}
9. Añade los operadores booleanos correctos para que la siguiente función tenga sentido.
function testLessOrEqual(int val) {
if (val) { // Cambia esta línea
return "Menor o igual a 12";
}
if (val) { // Cambia esta línea
return "Menor o igual a 24";
}
return "More Than 24";
}
10. Modificar la siguiente función para que devuelva Inside sielse val está entre 10 y 20 inclusive y Outside en caso contrario.
function testLogicalOr(val) {
if (val) { // Cambia esta línea
return "Inside";
}else {
return "Outside";
}
}
11. Añade el operador de igual para que la siguiente función devuelva Equal cuando val sea 12.
function testEqual(val) {
if (val) { // Cambia esta línea
return "Equal";
}
return "Not Equal";
}
12. Combina las sentencias if en un único bloque de tipo if/else.
function testElse(val) {
String result = "";
if (val > 5) {
result = "Mayor que 5";
}
if (val <= 5) {
result = "5 más pequeño";
}
return result;
}
13. Combina las sentencias en un único bloque de tipo if/elseif/else.
function testElse(val) {
String result = "";
if (val > 5) {
result = "Bigger than 5";
}
if (val < 5) {
result = "Smaller than 5";
}
if (val == 5) {
result = "Equal to 5";
}
return result;
}
14. ¿Qué valor tendrá x después de ejecutar el siguiente código?
function hola(nombre) {
return "Hi " + nombre + "!";
}
const h1 = m.hola("Selva");
const h2 = m.hola("Pola");
const x = h1 + " "+ h2;
x = "Hi Selva! Hi Pola!";
15. ¿Qué valor tendrá x después de la ejecución del siguiente código?
function duplica(String nombre) {
return nombre + " and " + nombre;
}
const x = duplica("Roy");
x = "Roy and Roy"
16. Cambia el orden de los bloques para que la función devuelva el valor correcto en todos los casos:
function orderMyLogic(val) {
if (val < 10) {
return "Menos que 10";
} else if (val < 5) {
return "Menos que 5";
} else {
return "Mayor o igual a 10";
}
}
17. Completar la función para que se cumplan las siguientes condiciones:
function testSize(num) {
return "Change Me";
}
num < 5 → return "Tiny";
num < 10 → return "Small";
num < 15 → return "Medium";
num < 20 → return "Large";
num >= 20 → return "Huge";
18. Escribe una función nand que tome como parámetros de entrada dos valores booleanos. Si ambos valores son true, el resultado debería ser falso. En cualquier otro caso, debería devolver true.
Por ejemplo, la llamada
nand(true, true);
debería devolver false.
Las llamadas:
nand(true, false);
nand(false, true);
nand(false, false);
deberían devolver true.
19. Escribe una función nor que tome como parámetros de entrada dos valores booleanos. Si ambos valores son false, el resultado debería ser true. En cualquier otro caso, el valor devuelto debería ser false.
Por ejemplo, la llamada a la función
nor(false, false);
debería devolver true.
Las llamadas:
nor(true, false);
nor(false, true);
nor(true, true);
deberían devolver false.
20. Escribe una función xor que tome dos valores booleanos. Si ambos valores son diferentes, el resultado debería ser true. Si ambos valores son iguales, el resultado debería ser false.
Por ejemplo, las llamadas:
xor(true, false);
xor(false, true);
deberían devolver true.
Las llamadas
xor(true, true);
xor(false, false);
deberían devolver false.
Recolector de basura
Javascript requiere una cantidad de memoria para poder trabajar. . En esta memoria, cedida por el Sistema Operativo, cada programa debe ser capaz ubicar los objetos que está manejando en tiempo de ejecución, monitorizar su estado, reciclarlos cuando ya no son necesarios e, idealmente, compactar el espacio resultante para optimizar el rendimiento.
La gestión de dicha memoria, dependiendo del lenguaje, puede ser de dos tipos:
- Manual: se asignan y liberan los recursos de memoria de forma explícita. Esto significa que es el desarrollador quien debe administrar los registros asignando memoria a sus objetos mediante punteros y liberarlos cuando ya no sean necesarios.
- Automática: las tareas de reserva, monitorización y reciclaje son llevadas a cabo por el propio sistema sin la intervención del programador. Es en este escenario donde el Recolector de Basura se encarga de identificar y eliminar la memoria ocupada por objetos que ya no están en uso por el programa (conociéndose a esta memoria residual como ‘basura’).
Ejemplo
let user = {
name: "Pablo"
};
Si ejecutamos la siguiente línea de código…
user = null;
La propiedad name dejará de ser accesible, y por tanto será elegible por el recolector de basura.