JavaScript Prerequisites

Clase 19 de 28Curso para Certificacion de Node.js con OpenJS Foundation 2023

Resumen

Domina los prerrequisitos de JavaScript que evalúa Snap con un enfoque práctico. Aquí verás cómo abordar el Task 9.x trabajando con objetos y funciones, y qué estudiar en Mozilla Developer Network para comprender closures, hoisting, el prototipo y export. Con una guía directa, sabrás en qué enfocarte y cómo validar tu solución en Node.

¿Qué exige el dominio de JavaScript en Snap?

Este dominio no es solo Node: requiere bases sólidas del lenguaje JavaScript. Debes resolver dos ejercicios, Task 9.1 y Task 9.2, centrados en conocimientos generales y lógica. Pueden ser más extensos de lo habitual, así que conviene practicar la lectura cuidadosa de consignas y la validación local.

  • Entiende y practica closures y hoisting.
  • Domina múltiples formas de crear objetos y controlar el prototipo.
  • Refuerza la fundamentación de funciones y sus métodos.
  • Conoce las formas de trabajar con export.
  • Prioriza claridad y pruebas locales sin dejar código extra.

¿Cómo se resuelve el Task 9.x con objetos y funciones?

La consigna indica modificar la función answer en el archivo answer.js para que reciba un parámetro operation (de tipo función) y retorne un objeto con dos propiedades: name (cadena con cualquier contenido) y result (método que ejecuta la función recibida).

¿Qué pide la consigna del Task 9.x?

  • Recibir un parámetro: operation, de tipo función.
  • Retornar un objeto con:
  • name: string con cualquier contenido.
  • result: método que ejecute operation.

Ejemplo de implementación basada en la consigna:

function answer(operation) {
  return {
    name: 'answer',
    result: function () {
      return operation();
    }
  };
}

¿Cómo validar el comportamiento en Node?

Prueba localmente creando una función simple y verificando la salida. La ejecución debe imprimir 3 al llamar el método result.

// función de prueba
function op() {
  return 1 + 2;
}

const res = answer(op);
console.log(res.result()); // 3
  • Verifica que result ejecute operation y retorne su valor.
  • No dejes código extra en el envío; solo lo solicitado.

¿Qué conceptos de MDN debes dominar?

Revisa cuidadosamente la documentación de Mozilla Developer Network. Estos son los conceptos clave para resolver bien este dominio y los Tasks 9.1 y 9.2:

  • Closures: funciones que recuerdan su entorno léxico; útiles para encapsular estado.
  • Hoisting: cómo el motor eleva declaraciones y afecta el orden de uso de variables y funciones.
  • Múltiples formas de crear objetos: literales, funciones constructoras, Object.create, clases; elige según necesidad.
  • Prototipo: cómo funciona la cadena de prototipos y cómo controlar el prototipo al crear objetos.
  • Funciones y sus métodos: entender cómo declarar, invocar y usar métodos relacionados.
  • Export: conocer las diferentes formas de export según el entorno.

Enfócate especialmente en las formas de crear objetos y en controlar el prototipo, ya que facilitan estructurar soluciones limpias y previsibles. Reforzar closures, hoisting y el manejo de funciones completa la base para superar este dominio con confianza.

¿Tienes dudas puntuales del Task 9.x o de algún concepto de MDN? Cuéntalo en los comentarios y comparte tu enfoque para resolverlo.