JavaScript es un lenguaje dinámico que admite estilos orientados a objetos, imperativos y declarativos (por ejemplo, la programación funcional).
Hay varias formas principales de asignar valores a nombres en JavaScript: usar variables o constantes. En Exercism, las variables siempre se escriben en camelCase; las constantes se escriben en SCREAMING_SNAKE_CASE. No hay una guía oficial que seguir, y distintas empresas y organizaciones tienen distintas guías de estilo. Siéntete libre de escribir las variables como quieras. La ventaja de escribirlas tal como están preparadas en los ejercicios es que se resaltarán de forma diferente en la interfaz web y en la mayoría de los IDE.
Las variables en JavaScript pueden definirse con la palabra clave const, let o var.
Cuando se usa let o var, una variable puede hacer referencia a distintos valores a lo largo de su vida.
Por ejemplo, myFirstVariable se puede definir y redefinir muchas veces con el operador de asignación =:
let myFirstVariable = 1;
myFirstVariable = 'Some string';
myFirstVariable = new SomeComplexClass();
A diferencia de let y var, las variables definidas con const solo se pueden asignar una vez.
Así es como se definen las constantes en JavaScript.
const MY_FIRST_CONSTANT = 10;
// Can not be re-assigned.
MY_FIRST_CONSTANT = 20;
// => TypeError: Assignment to constant variable.
💡 En un ejercicio de concepto posterior se explora y se explica la diferencia entre la asignación de una constante, la vinculación de una constante y el valor de una constante.
En JavaScript, las unidades de funcionalidad se encapsulan en funciones, que normalmente se agrupan en el mismo archivo cuando pertenecen juntas.
Estas funciones tienen parámetros (para que puedan recibir argumentos) y pueden devolver un valor con la palabra clave return.
Las funciones se invocan con la sintaxis ().
function add(num1, num2) {
return num1 + num2;
}
add(1, 3);
// => 4
En este ejemplo, el nombre de la función es add.
Tiene dos parámetros, num1 y num2.
Devuelve un valor: el resultado de la expresión num1 + num2.
Después, se llama a la función add con dos argumentos: 1 y 3.
El resultado de la función, el valor devuelto, es 4.
💡 En JavaScript hay muchas formas distintas de declarar una función.
Algunas de estas otras formas se ven diferentes de usar la palabra clave function.
El track intenta presentarlas gradualmente, pero si ya las conoces, siéntete libre de usar cualquiera de ellas.
En la mayoría de los casos, usar una u otra no es mejor ni peor.
Para que una function, una constante o una variable estén disponibles en otros archivos, hay que exportarlas con la palabra clave export.
Otro archivo puede entonces importarlas con la palabra clave import.
Esto también se conoce como el sistema de módulos.
Un buen ejemplo es cómo funcionan todas las pruebas.
Cada ejercicio tiene al menos un archivo, por ejemplo lasagna.js, que contiene la implementación.
La implementación se exporta desde el archivo, lo que hace que esté disponible para importarla en otro archivo.
Además, hay al menos otro archivo, por ejemplo lasagna.spec.js, que contiene las pruebas.
Este archivo importa las entidades públicas (es decir, las exportadas) para probar la implementación:
// file.js
export const MY_VALUE = 10;
export function add(num1, num2) {
return num1 + num2;
}
// file.spec.js
import { MY_VALUE, add } from './file';
add(MY_VALUE, 5);
// => 15
¡La novia de Lucian está de camino a casa y todavía no ha preparado la cena de su aniversario!
En este ejercicio, vas a escribir código para ayudar a Lucian a cocinar una lasaña exquisita con su libro de cocina favorito.
Tienes cuatro tareas relacionadas con el tiempo que se tarda en cocinar la lasaña.
Define la constante EXPECTED_MINUTES_IN_OVEN, que representa cuántos minutos debe estar la lasaña en el horno. Debe exportarse. Según el libro de cocina, el tiempo esperado en el horno en minutos es 40.
Implementa la función remainingMinutesInOven, que toma como parámetro los minutos reales que la lasaña lleva en el horno y devuelve cuántos minutos tiene que seguir aún la lasaña en el horno, según el tiempo esperado en el horno en minutos de la tarea anterior.
remainingMinutesInOven(30);
// => 10
Implementa la función preparationTimeInMinutes, que toma como parámetro el número de capas que has añadido a la lasaña y devuelve cuántos minutos has dedicado a prepararla, suponiendo que cada capa te lleva 2 minutos de preparación.
preparationTimeInMinutes(2);
// => 4
Implementa la función totalTimeInMinutes, que toma dos parámetros: el parámetro numberOfLayers es el número de capas que has añadido a la lasaña, y el parámetro actualMinutesInOven es el número de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos en total has dedicado a cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña ha estado en el horno en ese momento.
totalTimeInMinutes(3, 20);
// => 26
Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.