Categoría: JavaScript

  • JS – Function

    Una function(función) es un bloque de codigo reutilizable, permite organizar mejor un programa, evita repetir instrucciones y hacen que el código sea más limpio y facil de mantener.

    Podemos pensar que una función es como una máquina, que recibe datos de entrada, los procesa y devuelve un resultado. Las funciones son un conjunto de instrucciones agrupadas que se pueden ejecutar cuando las necesitamos.

    Su sintaxis básica es:

    • nombreDeLaFuncion → cómo identificamos la función.
    • parámetros → valores que la función recibe para trabajar (opcionales).
    • return → devuelve un resultado (opcional).

    Ejemplo básico:

    En este ejemplo:

    • La función saludar recibe un parámetro (nombre).
    • Devuelve un saludo personalizado usando return.
    • Luego la invocamos con saludar("Javier").

    Tipos de funciones en JavaScript

    1. Funciones declaradas

    Son las que definimos con la palabra reservada function. Se pueden usar incluso antes de ser declaradas (gracias al hoisting).

    2. Funciones expresadas

    Se asignan a una variable o constante. No se pueden usar antes de su definición.

    3. Funciones de fecha

    Tienen una sintaxis más corta y son muy usadas en la programación moderna.

    4. Funciones anónimas

    No tienen nombre propio, Se suelen usar como callbacks, los callbacks son funciones pasadas como parámetro a otras funciones.

    5. Funciones autoejecutables

    Se ejecutan automáticamente al definirse.

    Parámetros y valores por defecto

    Podemos asignar valores por defecto a los parámetros.

    Funciones como ciudadanos de primera clase

    En JavaScript, las funciones se pueden:

    • Guardar en variables.
    • Pasar como argumentos a otras funciones.
    • Devolver como resultado de una función.

    Esto permite usar conceptos avanzados como callbacks y funciones de orden superior.

    Las funciones en JavaScript son una de las bases más importantes del lenguaje.

    Gracias a ellas podemos:

    • Reutilizar el código.
    • Organizar mejor nuestros programas.
    • Implementar técnicas avanzadas como programación funcional o asincronía.

    Dominar las funciones en fundamental para avanzar en el aprendizaje de JavaScript y poder crear aplicaciones más completas y profesionales.

    Si buscas documentación oficial y de confianza para profundizar en funciones de JavaScript, aquí tienes algunas de las mejores fuentes disponibles:

    1. MDN – Guía de JavaScript: Functions

    Es probablemente la guía más completa y accesible:

    • Cubre todo lo esencial: definición, invocación, hoisting, ámbitos, cierres (closures), parámetros, funciones flecha, y mucho más.
    • Ideal para entender tanto la teoría como ver ejemplos prácticos bien comentados.
      MDN Web Docs

    2. MDN – Declaración function (Referencia)

    Esta es la sección de referencia detallada sobre la sintaxis de las funciones:

    • Explica cómo funcionan internamente las declaraciones function.
    • Aclara el comportamiento en modo estricto y no estricto, diferencias de alcance (scope), redeclaraciones y hoisting.
      MDN Web Docs

    3. MDN – Expresiones, flechas, funciones anónimas y más (Referencia de funciones)

    Aquí profundizas en:

    • Cómo funcionan las funciones expresadas vs. declaradas.
    • Ventajas y limitaciones de las arrow functions, como su comportamiento con this, ausencia de arguments, y restricciones como no poder ser generadoras.
      MDN Web Docs

    4. The Modern JavaScript Tutorial

    Un recurso alternativo moderno y práctico:

    • Ofrece explicaciones claras, con ejemplos y ejercicios, desde conceptos fundamentales hasta temas avanzados.
      javascript.info

  • JS – Primitive Types & Reference Type

    El concepto más importante en JavaScript es que todo en JavaScript son objetos. Los objetos son una colección de pares nombre: valor, donde el nombre es una string y el valor puede ser un number, string, boolean o cualquier otra cosa. Una function es un objeto, un array es un objeto, un number es un objeto, una string es un objeto, un boolean y las expresiones regulares, también son objetos, todos se componen de una estructura con pares de name: value.

    El segundo concepto más importante de JavaScript son los types, hay dos grupos de types en JavaScript, primitive types y reference type. Reference type está escrito en singular, porque solo hay un tipo y es un objeto.

    Hay diferencias entre primitive types y reference type, pero antes, hablemos sobre las variables. Las variables son componentes fundamentales en cualquier lenguaje de programación, contienen un valor y este valor puede cambiar, puedes reasignarle otro valor y la variable conservará el nuevo valor y el antiguo lo borrará. Un valor es un simple registro en la memoria, y cada registro tiene un type especifico, que se dividen en dos grupos, primitive value types y reference type. La razón de esta división está en la forma en que los valores de uso de esos tipos se almacenan internamente en la memoria. 6 tipos de variables se definen como primitive types: string, boolean, number, null, undefined y symbol. Para la reference type, tenemos object.

    Primitive types

    Aquí tenemos una memoria, cada valor está almacenado en la memoria, cada uno de los 6 tipos de primitive types se almacenan en la memoria por separado, en las llamadas, celdas o células, como una secuencia de ceros y unos, y puedes leer su valor en cualquier momento.

    Reference type

    Aquí tenemos dos ejemplos de reference type, estos, no están almacenados en la memoria directamente, están separados en 2 sitios diferentes.

    Lo que vemos a la izquierda se llama pointer y simplemente contiene la ubicación del objeto en la memoria, es decir, la celda pointer apunta a otra celda donde esta el objeto.

    Cuando usas { } y colocas pares de nombre: valor, estas creando un objeto llamado object literal notation, cuando usas [ ] y colocas elementos separados por comas, estas creando un objeto llamado array literal notation.

    Los objetos creados por reference type, pueden tener múltiples pointers almacenados en diferentes celdas, pero todos ellos apuntan a un mismo objeto, cuando cambias el valor de un pointer, lo que estás cambiando es el valor en el objeto, los pointers no se modifican, permanecen en el mismo lugar de la memoria, pero el valor se actualiza para todos los pointers.

    En el siguiente ejemplo, creamos una copia de variableA y modificamos «a» a través de copiaDeA.a a 20, ahora el valor de variableA.a es 20.

    Este artículo se ha creado a partir del video 26 del curso The JavaScript Bible.