CursosEmpresasBlogLiveConfPrecios

¿Qué es una función declarativa y una expresiva?

Clase 7 de 30 • Curso Básico de JavaScript

Contenido del curso

Introducción a JavaScript

  • 1
    ¿Qué es JavaScript y para qué sirve?

    ¿Qué es JavaScript y para qué sirve?

    12:38 min
  • 2
    Accede a la versión más actualizada de este contenido

    Accede a la versión más actualizada de este contenido

    00:15 min
  • 3
    ¿Por qué JavaScript?

    ¿Por qué JavaScript?

    03:32 min
  • 4
    Elementos de un Lenguaje de Programación: Variables, Funciones y Sintaxis

    Elementos de un Lenguaje de Programación: Variables, Funciones y Sintaxis

    12:45 min
  • 5
    ¿Qué es una variable?

    ¿Qué es una variable?

    09:57 min
  • 6
    Qué son las funciones en JavaScript

    Qué son las funciones en JavaScript

    14:34 min
  • 7
    ¿Qué es una función declarativa y una expresiva?

    ¿Qué es una función declarativa y una expresiva?

    Viendo ahora
  • 8
    Playground: retorna el tipo

    Playground: retorna el tipo

Bases de JavaScript

  • 9
    Scope

    Scope

    07:08 min
  • 10
    Hoisting

    Hoisting

    14:01 min
  • 11
    Coerción

    Coerción

    09:00 min
  • 12
    Valores: Truthy y Falsy

    Valores: Truthy y Falsy

    05:01 min
  • 13
    Operadores: Asignación, Comparación y Aritméticos.

    Operadores: Asignación, Comparación y Aritméticos.

    09:39 min
  • 14
    Playground: compara un número secreto

    Playground: compara un número secreto

Condicionales

  • 15
    Condicionales: If, Else, else if

    Condicionales: If, Else, else if

    14:33 min
  • 16
    Switch

    Switch

    06:53 min
  • 17
    Playground: tienda de tecnología

    Playground: tienda de tecnología

Arrays

  • 18
    ¿Qué es un array?

    ¿Qué es un array?

    16:08 min
  • 19
    Playground: detecta el elemento impostor de un array

    Playground: detecta el elemento impostor de un array

Loops

  • 20
    Loops: For y For...of

    Loops: For y For...of

    12:02 min
  • 21
    Loops: While

    Loops: While

    05:17 min
  • 22
    Playground: rescata al estudiante

    Playground: rescata al estudiante

Objects

  • 23
    Objects

    Objects

    10:03 min
  • 24
    Objects: Función constructora

    Objects: Función constructora

    10:02 min
  • 25
    Playground: permiso para conducir

    Playground: permiso para conducir

Métodos de Arrays

  • 26
    Métodos de recorridos de Arrays

    Métodos de recorridos de Arrays

    09:07 min
  • 27
    Recorriendo Arrays con .find(), .forEach() y .some()

    Recorriendo Arrays con .find(), .forEach() y .some()

    08:59 min
  • 28
    Eliminando elementos de un Array

    Eliminando elementos de un Array

    01:05 min
  • 29
    Playground: Arregla el Bug

    Playground: Arregla el Bug

Próximos pasos con JavaScript

  • 30
    Continúa con el Curso Práctico de JavaScript

    Continúa con el Curso Práctico de JavaScript

    01:19 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Cuando hablamos de funciones en JavaScript, tenemos dos tipos de funciones: Funciones Declarativas (function declaration / function statement) y Expresiones de función (function expression / funciones anónimas).

      Funciones Declarativas:

      En las funciones declarativas, utilizamos la palabra reservada function al inicio para poder declarar la función:

      function saludar(nombre) { console.log(`Hola ${nombre}`); } saludar('Diego');

      Expresión de función:

      En la expresión de función, la declaración se inicia con la palabra reservada var, donde se generará una variable que guardará una función anónima.

      var nombre = function(nombre){ console.log(`Hola ${nombre}`) } nombre(‘Diego’);

      En la expresión de función, la función podría o no llevar nombre, aunque es más común que se hagan anónimas.

      Diferencias:

      A las funciones declarativas se les aplica hoisting, y a la expresión de función, no. Ya que el hoisting solo se aplica en las palabras reservadas var y function.

      Lo que quiere decir que con las funciones declarativas, podemos mandar llamar la función antes de que ésta sea declarada, y con la expresión de función, no, tendríamos que declararla primero, y después mandarla llamar.

      Comentarios

      Abril Darynka Tapia Sosa

      Abril Darynka Tapia Sosa

      student•
      hace 6 años
        César Espitia

        César Espitia

        student•
        hace 6 años
        Juanes Sánchez

        Juanes Sánchez

        student•
        hace 6 años
      David Higuera

      David Higuera

      student•
      hace 5 años
        Kathleen M. Bucarito P.

        Kathleen M. Bucarito P.

        student•
        hace 5 años
        Eliseo Ávila

        Eliseo Ávila

        student•
        hace 5 años
      Ana Victoria De Canha Regalado

      Ana Victoria De Canha Regalado

      student•
      hace 6 años
        Mateo Echeverri Betancur

        Mateo Echeverri Betancur

        student•
        hace 6 años
        JUAN CAMILO PANIAGUA ALVAREZ

        JUAN CAMILO PANIAGUA ALVAREZ

        student•
        hace 6 años
      Fernando Alejandro Yerena Ramos

      Fernando Alejandro Yerena Ramos

      student•
      hace 6 años
        Alexander Nova Arevalo

        Alexander Nova Arevalo

        student•
        hace 6 años
        Javier Andres Gamboa Duarte

        Javier Andres Gamboa Duarte

        student•
        hace 6 años
      Sara Hernandez

      Sara Hernandez

      student•
      hace 6 años
        Jimmy Buriticá Londoño

        Jimmy Buriticá Londoño

        student•
        hace 6 años
        Joni Delgado

        Joni Delgado

        student•
        hace 6 años
      Leonard L

      Leonard L

      student•
      hace 6 años
        Jesús maldonado

        Jesús maldonado

        student•
        hace 6 años
        Leonard L

        Leonard L

        student•
        hace 6 años
      Hamilton Hernandez Loaiza

      Hamilton Hernandez Loaiza

      student•
      hace 5 años
        Karina Magaly Marroquín García

        Karina Magaly Marroquín García

        student•
        hace 5 años
        Esther Janeth Machado Valenzuela

        Esther Janeth Machado Valenzuela

        student•
        hace 5 años
      Milton Josué Barrera Zepeda

      Milton Josué Barrera Zepeda

      student•
      hace 6 años
        Francisco Varela

        Francisco Varela

        student•
        hace 6 años
        Kevin Diego Kasa Chura

        Kevin Diego Kasa Chura

        student•
        hace 5 años
      Eduardo Mejia

      Eduardo Mejia

      student•
      hace 6 años
        Alejandro Santa Lucia

        Alejandro Santa Lucia

        student•
        hace 6 años
        Gutierrez Diego

        Gutierrez Diego

        student•
        hace 6 años
      Jairo Jair Jasón Pozo Pérez

      Jairo Jair Jasón Pozo Pérez

      student•
      hace 5 años
        JOSE GABRIEL CASTILLO MOSQUERA

        JOSE GABRIEL CASTILLO MOSQUERA

        student•
        hace 5 años
      Nicolás Adrian Paredez Ramirez

      Nicolás Adrian Paredez Ramirez

      student•
      hace 5 años
        Carlos Alejandro Acevedo Rosillo

        Carlos Alejandro Acevedo Rosillo

        student•
        hace 5 años
        Juan Camilo Valencia Jaramillo

        Juan Camilo Valencia Jaramillo

        student•
        hace 5 años
      Sergio Estrella

      Sergio Estrella

      teacher•
      hace 6 años
        Jeferson Velásquez

        Jeferson Velásquez

        student•
        hace 6 años
        Martin Paez

        Martin Paez

        student•
        hace 6 años
      Eleazar Carreón Álvarez

      Eleazar Carreón Álvarez

      student•
      hace 6 años
        Fernando de Leon Gil

        Fernando de Leon Gil

        student•
        hace 6 años
        Chrystian Fabian Lozano Ramirez

        Chrystian Fabian Lozano Ramirez

        student•
        hace 6 años
      Viberth Gonzalez

      Viberth Gonzalez

      student•
      hace 5 años
        Sergio Brandon De Lucio Chavero

        Sergio Brandon De Lucio Chavero

        student•
        hace 5 años
        Gustavo Gonzalez Montero

        Gustavo Gonzalez Montero

        student•
        hace 5 años
      Cesar Mora

      Cesar Mora

      student•
      hace 5 años
        Esther Janeth Machado Valenzuela

        Esther Janeth Machado Valenzuela

        student•
        hace 5 años
        Vidal Alberto Nuñez Oré

        Vidal Alberto Nuñez Oré

        student•
        hace 5 años
      Luis Eduardo Rodríguez Ramírez

      Luis Eduardo Rodríguez Ramírez

      student•
      hace 5 años
      Jherom Chacon

      Jherom Chacon

      student•
      hace 6 años
      Brandon Argel Verdeja Domínguez

      Brandon Argel Verdeja Domínguez

      student•
      hace 5 años
        Adrian Salgado

        Adrian Salgado

        student•
        hace 5 años
        Ernesto Rafael Cedillo Rueda

        Ernesto Rafael Cedillo Rueda

        student•
        hace 5 años
      Jhuvael Zambrano Huacausi

      Jhuvael Zambrano Huacausi

      student•
      hace 6 años
      Francisco Javier Molina Silva

      Francisco Javier Molina Silva

      student•
      hace 5 años
        Francisco Sebastian Dueñas Caicedo

        Francisco Sebastian Dueñas Caicedo

        student•
        hace 5 años
        Gló Aguilera Ortega

        Gló Aguilera Ortega

        student•
        hace 5 años

      ![](

      Captura2.PNG

      Muchas gracias por tu aclaración!

      Justo iba a preguntarlo. ¡Gracias!

      Cuando se refiere a que el hoisting afecta a una y a la otra no:

      1. si intentamos usar primero una función declarativa antes de ser declarada:

      2. si intentamos usar primero una expresión de función antes de ser declarada:

      Y esto básicamente se debe a que:

      hoisting detecta primero declaraciones de variables y funciones para poder ser utilizadas, pero no su definición (valor).

      Y la expresión de función al ser una función declarada dentro de una variable, detecta solamente var nombre; (sin valor) por lo tanto la función NO es detectada en un principio.

      Gracias, pro.

      Para los que no saben qué es el hoisting:

      La definición de hoisting nos dice que las variables y funciones al ser declaradas se mueven físicamente hacia arriba en el código, es decir, el navegador las lee primero. Internamente, lo que pasa es lo siguiente: JS pone las variables y funciones declaradas en memoria mientras está en la fase de compilación (eso hace que el navegador las lea primero), pero en realidad siempre van a estar en el mismo sitio de tu código, nunca se mueven hacia arriba.

      Fuente: https://developer.mozilla.org/en-US/docs/Glossary/Hoisting

      Excelente aporte este

      Mil gracias por este aporte; me acabas de aclarar un comportamiento rarísimo que veía con unas funciones de un código que tenía. La verdad no entendía por que si las colocaba en cierto lugar abajo y las necesitaba antes, me salía un error de que no existiera, pero con esto que explicas y el contenido del artículo, todo quedó genial!!

      El profesor Sacha Lifzyc, del Curso de Fundamentos de JavaScript tiene un video en Youtube explicando que es el Hoisting. Un recurso imperdible: ¿QUÉ ES EL HOISTING en JAVASCRIPT? | JS en ESPAÑOL

      Me gusta el video, me dejo claro todo con el GLOBO :D:D

      woow gracias!

      Para los que no sabíamos que es hoisting 🙈 https://www.itdo.com/blog/javascript-conceptos-fundamentales-hoisting/

      Gracias

      Super claro el documento!! muchas gracias

      DIFERENCIA ENTRE FUNCIONES DECLARATIVAS Y DE EXPRESIÓN Ambas son declaraciones válidas de una función en JavaScript pero con un formato diferente y por ende con un comportamiento diferente, la función declarativa se ve afectada por el hoisting, mientras que la expresiva no. Pero, qué es el hoisting. El hoisting es utilizado para referirse a cómo funcionan los contextos de ejecución en JavaScript (específicamente las fases de creación y ejecución). . .

      ■Con las funciones declaradas, tenemos la seguridad de que siempre estarán disponibles en tiempo de ejecución. Con las funciones expresadas, tendremos que éstas no son evaluadas hasta que el intérprete no alcance su posición en el código, lo cual puede generar errores en arquitecturas muy anidadas.

      hoisting.jpg

      tu aporte esta genial, tienes algún link de donde pueda sacar mas información.

      Dale click aqui Te recomiendo esta pagina https://www.w3schools.com/. Aqui encontraras todo lo que necesites para aprender programación.

      Capture.PNG

      gracias por el aporte

      Que buena explicacion, gracias :D

      Fuente

      Hoisting | VideoSuperExplicación👩🏻‍💻

      buenísima explicación! Gracias!

      Gracias por el aporte, el vídeo estuvo buenisimo

      la verdad es que debo aplicarme mas, me a costado entender JavaScript hasta este momento, pero se que lo lograre, saludos y que la fuerza los acompañe a todos.... programadores jedi, aun soy un padawan :(

      Somos dos hermano. Me esta resultando muy confuso hasta por ahora.

      Animo Eduardo, ya he visto el video por 5ta vez y ya lo he entendido. Poco a poco y ya veras que lo entenderás.

      Segun MDN: El hoisting se refiere a que las declaraciones de variables y funciones es movido al principio del código, pero lo que ocurre en realidad es dichas declaraciones son almacenadas en memoria.

      Funciones declarativas = son asignadas a la memoria por lo que la podemos llamar antes sin problemas. Funciones de expresión = NO son asignadas en memoria por lo que no pueden ser llamadas antes.

      por lo que si haces esto var x = 1; o var x = function (a+b) { return a+b }

      no aplicara el 'hoisting' , ya que se aplica solamente a la declaración es decir a : var x;

      muchas gracias realice la prueba y si efectivamente Funciones declarativas = la podemos llamar antes sin problemas. Funciones de expresión = no pueden ser llamadas antes.

      Una explicación con ejemplos de hoisting aquí

      Muy buen aporte

      Es decir que el hoisting es simplemente la forma en la que javascript interpreta las funciones.

      La verdad entiendo el tema de declararlas y como usarlas, pero quede perdido con el concepto hoisting como tal.

      Y ¿Qué diantres es Hoisting? También conocido como "Elevamiento" Explicación de Leonidas Esteban Explicación de Sacha Lifszyc

      Precisamente eso me preguntaba jaja, buen aporte.

      Que gran manera de aterrizar el concepto

      Aquí estoy llamando la función antes de que sea declarada;

      mostrarMensaje(); function mostrarMensaje() { console.log('Hello world!'); }

      El código si lo ejecuta.

      En cambio si usamos:

      mostrarMensaje(); var mostrarMensaje() = function (){ console.log('Hello World!'); };

      Mostrara un error de que no es una función, pues no ha surtido efecto el hoisting.

      Que buen ejemplo, me quedo mucho mas claro, gracias!!!!!

      tan claro como curso de udemy

      En este video que encontre explican que es el hoisting video

      Que oportuno, justo me lo estaba preguntando.

      👌

      Para los que aun no conocen el termino de HOISTING o para que sirve, les dejo este video de Sacha Lifszyc profe de Platzi

      ¿QUÉ ES EL HOISTING en JAVASCRIPT?

      saludos :)

      Nunca había escuchado de hoisting, Gracias :D

      Genial, gracias por compartir el link

      También existe las funciones de flecha, que son una forma diferente de escribir funciones de forma tradicional pero que llevan mucho menos código, conocerlas te ayuda a la legibilidad de un código de forma rápida, aquí tengo un pequeño ejemplo obtenido de esta página en donde puedes encontrar más información al respecto.

      // Función tradicional function (a){ return a + 100; } // Desglose de la función flecha // 1. Elimina la palabra "function" y coloca la flecha entre el argumento y el corchete de apertura. (a) => { return a + 100; } // 2. Quita los corchetes del cuerpo y la palabra "return" — el return está implícito. (a) => a + 100; // 3. Suprime los paréntesis de los argumentos a => a + 100;

      Como se puede ver es mucho más compacto, y ahorra varias líneas de código

      • En programación tenemos algo llamado ámbitos, o en inglés scopes. Imagina esto como una caja, cáda ámbito es una caja que puede tener otras cajas dentro. En cada caja puedes trabajar con lo que tengas (declares) dentro de esa caja, pero también podrás sacar la mano de esa caja para tomar cosas que tengas (que estén declaradas) en la caja más externa (aquella que contiene la caja dónde estás, si estuvieses en la caja de más externo nivel entonces no podrás usar nada de afuera porque no habrá nada afuera).

      • En Javascript no importa dónde definas tus cosas (variables) siempre que estén en la caja o en una caja superior. Eso es lo que hoisting sería. Sin embargo, lo que se recomienda siempre es declarar las variables en lo más alto de la caja. Esto para evitar errores, porque las variables declaradas con let y const tendrán problemas con ser declaradas posteriormente a ser utilizadas. Lo mejor es estándarizar la práctica y siempre declarar las variables al inicio de cada ámbito (caja). Tendremos el mismo problema con las funciones expresivas, por eso usar las funciones declarativas representa una ventaja, más teniendo en cuenta que cuándo organizamos el código podríamos llegar a mover nuestras funciones para agruparlas por algún criterio.

      hoisting.png

      muchas gracias por el aporte 😁😁😁

      Estas usando notion?, si es asi, me puedes compartir tu nota?

      (https://www.youtube.com/watch?v=uI6o97A4IrI&ab_channel=LaCocinadelC%C3%B3digo) Este vídeo me ayudó a entender mejor este tema, espero les ayude

      Comparto la documentación oficial de la MDN de Hoisting

      https://developer.mozilla.org/es/docs/Glossary/Hoisting

      Gracias uwu

      Mucho gracias