Curso de Closures y Scope en JavaScript

Strict Mode

Curso de Closures y Scope en JavaScript

Contenido del curso

Bienvenida

  • 1
    Bienvenida al Curso de Closures y Scope

    Bienvenida al Curso de Closures y Scope

    01:11 min

Tipos de scope en JavaScript

  • 2
    Global Scope

    Global Scope

    12:09 min
  • 3
    Function Scope

    Function Scope

    05:52 min
  • 4
    Block Scope

    Block Scope

    07:16 min
  • 5
    Reasignación y redeclaración

    Reasignación y redeclaración

    14:05 min
  • 6
    Strict Mode

    Strict Mode

    Viendo ahora

Closure

  • 7
    ¿Qué es un Closure?

    ¿Qué es un Closure?

    09:37 min
  • 8
    Practicando Closures

    Practicando Closures

    15:24 min

Hoisting

  • 9
    ¿Qué es el Hoisting?

    ¿Qué es el Hoisting?

    08:28 min

Debugging

  • 10
    Debugging

    Debugging

    04:33 min

Cierre

  • 11
    Conclusiones

    Conclusiones

    03:23 min
schoolTomar examen
search
CursosEmpresasBlogLiveConfEventosPrecios

0:00/5:54

Strict Mode

Curso de Closures y Scope en JavaScript

Clase 6 de 11

Clase 6 / 11

Progreso del curso

Bienvenida

  • 1

    Bienvenida al Curso de Closures y Scope

    01:11

Tipos de scope en JavaScript

  • 2lock

    Global Scope

    Suscríbete para ver más
  • 3lock

    Function Scope

    Suscríbete para ver más
  • 4lock

    Block Scope

    Suscríbete para ver más
  • 5lock

    Reasignación y redeclaración

    Suscríbete para ver más
  • play_arrowlock

    Strict Mode

    play_circleViendo ahora

Closure

  • 7lock

    ¿Qué es un Closure?

    Suscríbete para ver más
  • 8lock

    Practicando Closures

    Suscríbete para ver más

Hoisting

  • 9lock

    ¿Qué es el Hoisting?

    Suscríbete para ver más

Debugging

  • 10lock

    Debugging

    Suscríbete para ver más

Cierre

  • 11lock

    Conclusiones

    Suscríbete para ver más
workspace_premiumTomar 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

Comentarios (43)43 comentarios

    Alfredo Olmedo

    Alfredo Olmedo

    Hace 4 años

    El modo estricto tiene varios cambios en la semántica normal de JavaScript:

    1. Elimina algunos errores silenciosos de JavaScript cambiándolos para que lancen errores.

    2. Corrige errores que hacen difícil para los motores de JavaScript realizar optimizaciones: a veces, el código en modo estricto puede correr más rápido que un código idéntico pero no estricto.

    3. Prohíbe cierta sintaxis que probablemente sea definida en futuras versiones de ECMAScript.

      Oscar Barajas Tavares

      Oscar Barajas Tavares

      Team Platzi
      Hace 4 años

      Gracias por el aporte Aldredo.

      Luis Hernando Sendoya Serrato

      Luis Hernando Sendoya Serrato

      Hace 4 años

      que buen aporte, gracias

    Omar Esteban Contreras Leal

    Omar Esteban Contreras Leal

    Hace 4 años

    El modo estricto se aplica a un script completo o a funciones individuales. No se aplica a bloques entre corchetes {}; intentar aplicarlo en tales contextos no hace nada. Datos extraídos de MDN. Que gusto es volver a hacer este curso y aprender nuevas cosas =)!

    Lucas Rojas

    Lucas Rojas

    Hace 4 años

    Para profundizar el strict mode https://www.youtube.com/watch?v=7e6ssF78Af4

      Agu Damonte

      Agu Damonte

      Hace 4 años

      Un groso sacha

      Julian Camilo Sanchez Sosa

      Julian Camilo Sanchez Sosa

      Hace 4 años

      Gracias por el aporte, esta explicacion mereció tal profundidad 👏🏻

    Rubén Cuello

    Rubén Cuello

    Hace 4 años

    Así que fue creado en una semana. Con razón :smile:

      Nicolas Forero Quevedo

      Nicolas Forero Quevedo

      Hace 4 años

      con razon que XD

      Alejandro Brand

      Alejandro Brand

      Hace 4 años

      "Ehj todavia tengo tiempo para entregar el trabajo..." jaja

    Joao Ivan Garduño Salgado

    Joao Ivan Garduño Salgado

    Hace 4 años

    Strict Mode: Nos permite ejecutar de forma estricta reglas particulares. Por ejemplo:

    • Para mejorar el control de la asignación de las variables y algunos otros elementos claves para que nuestro código cumpla con el mayor de los estándares.
      Rafael Martínez Rodríguez

      Rafael Martínez Rodríguez

      Hace 4 años

      Muchas gracias por el aporte.

    Henry Jeffersson Salinas Arenas

    Henry Jeffersson Salinas Arenas

    Hace 4 años

    les recomiendo que instalen esta extensión Quokka.js Visual Studio Code Extension

    Ramsés Castañeda

    Ramsés Castañeda

    Hace 4 años

    ¿El 'use strict' se tiene que poner arriba del todo?

      Guadalupe Monge Barale

      Guadalupe Monge Barale

      Hace 4 años

      Sí.

      Pablo Cesar Acosta Paredes

      Pablo Cesar Acosta Paredes

      Hace 3 años

      Así es !

    César Palma

    César Palma

    Hace 4 años

    La historia de javascript es el mejor ejemplo de la aplicación de metodologías agiles :D. Un software evolucionando con el tiempo a medida que la necesidad lo amerita o en este caso el alcance del proyecto cambia. El modo estricto otra de las mejoras para escribir un mejor código javascript.

    Algo que apuntar sobre el futuro. El modo estricto funciona por defecto en aplicaciones que importan/exportan otros archivos js (módulos). Por ejemplo una web estática importando script type=module o una web usado un framework. Así que en el futuro al desarrollar una web en las prácticas actuales el modo estricto ya está bajo el capó.

    https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Strict_mode#modo_estricto_para_m%C3%B3dulos

    Luis Carlos Zapata García

    Luis Carlos Zapata García

    Hace 4 años

    Strict mode

    strict mode.png

    ¿Sube la complejidad al hacer código con strict mode?

    • Forma de tener mejor control de la asignación de las variables.

    • Código cumpla con el mayor de los estandares.

    Ejemplo Código Javascript strict mode

    'use strict'; pi = 3.1416; console.log(pi); function myFunction() { return pi = 3.1416; } console.log(myFunction());
    Santiago Forero Mendez

    Santiago Forero Mendez

    Hace 3 años

    Entonces 'use strict' que tipo de scope tiene? porque veo que se volvió a usar como si fuera local

      Brandon Lee Aguero Fernandez

      Brandon Lee Aguero Fernandez

      Hace 3 años

      Global, solo basta con colocar el "use strict” al inicio de tu archivo

    SANDRO SIMON

    SANDRO SIMON

    Hace 4 años

    ¿Hay forma de establecer 'use strict para todo el proyecto?

      Oscar Barajas Tavares

      Oscar Barajas Tavares

      Team Platzi
      Hace 4 años

      si, y existen herramientas como ESLint para crear estas reglas. https://eslint.org/docs/latest/rules/global-strict

    Carlos S. Aldazosa

    Carlos S. Aldazosa

    Hace 4 años

    Algo que no sabía es que los módulos tienen el "modo estricto" de forma implícita, esto significa que todo modulo esta en "modo estricto", sin necesidad de declararlo con el use strict

    function myStrictFunction() { // because this is a module, I'm strict by default } export default myStrictFunction;

    Informacion sacada de MDN

    Rodrigo Espinosa

    Rodrigo Espinosa

    Hace 4 años

    El modo estricto añade restricciones al lenguaje para prevenir errores comunes y mejorar la seguridad del código. Algunas de las restricciones incluyen:

    • No se pueden usar variables sin declarar previamente.

    • No se puede usar una palabra reservada como nombre de variable o función.

    • No se puede hacer una asignación a una propiedad no escribible.

    • No se puede usar un objeto global como objeto "this" en una función sin objeto.

    Se recomienda usar 'use strict' en todos los archivos JavaScript para garantizar una mejor calidad del código y prevenir errores.

    Santiago Rodriguez Chaves

    Santiago Rodriguez Chaves

    Hace 4 años

    Strict Mode: Nos permite ejecutar de forma estricta las reglas de JS

    Laura Muñoz

    Laura Muñoz

    Hace 4 años

    En qué tipos de proycto es mejor trabajar con strict mode?

      Alan Cabrera

      Alan Cabrera

      Hace 4 años

      En general no se suele usar ya que tiene usos muy específicos como "arreglar" el uso de var, pero como no se suele usar var en la gran mayoría de proyectos no usamos el strict mode.

      Aunque seguro en el futuro encontrarás un proyecto en el que te resulte útil.

      Saludos :)

    Brandon Lee Aguero Fernandez

    Brandon Lee Aguero Fernandez

    Hace 3 años

    Ahora cuando haga mis proyectos con javascript usare el "strict mode", de esta manera me evito problemitas jejeje

    David Rangel

    David Rangel

    Hace 3 años

    Esta es la justificación para la creación de un "loopy mode" o "modo poco riguroso" y de un modo "estricto", según la documentación de Mozilla:

    El modo estricto cambia algunos errores de sintaxis tolerados en modo no estricto y los convierte en errores. JavaScript fue diseñado de modo que fuera fácil para programadores novatos, y puede haber operaciones semánticas que deberían ser errores pero son tratadas como libres de error. A veces esto sirve para solucionar el problema en el momento, pero puede crear problemas más graves en el futuro. El modo estricto trata las equivocaciones como errores, para que se puedan descubrir y subsanar inmediatamente.

    Kevin Zavala

    Kevin Zavala

    Hace 4 años

    Esa curiosidad de que JS fue escrito en una semana no me la sabía :O

      Alvaro Eduardo Garzón Pira

      Alvaro Eduardo Garzón Pira

      Hace 4 años

      Y como curiosidad adicional, JavaScript cuando nació y que fue escrito en este corto tiempo, no se llamaba JavaScript, se llamaba Mocha

    Jefred Bedoya

    Jefred Bedoya

    Hace 6 meses•editado

    El poder de Strict Mode

    • Seguridad: Convierte errores silenciosos en excepciones claras para el desarrollador.
    • Variables: Impide la creación accidental de variables globales.
    • Contexto: Define this como undefined en funciones simples, evitando fugas al objeto global.

    Restricciones clave

    • Prohíbe el uso de with.
    • Evita duplicados en parámetros de funciones.
    • Bloquea asignaciones a propiedades de solo lectura.
    Jess Key

    Jess Key

    Hace 10 meses

Recursos

El modo estricto es una funcionalidad que le permite al motor de JavaScript cambiar la manera en que ejecuta el código. En este modo, se reduce las cosas que podemos hacer, esto es bueno porque permite manejar errores que son poco perceptibles o que el motor de JavaScript sobreentiende y ayuda a su compilación para corregirlos.

Este en el código colocando en la primera línea "use strict" para todo el archivo. También puede utilizarse en la primera línea de una función, pero no para un bloque en específico.

Ejemplo usando el modo estricto

Si realizas el siguiente código que contiene una asignación sin una declaración, no va a ocurrir un error y el programa se va a ejecutar con normalidad.

nombre = "Andres" console.log(nombre) // "Andres"

En modo estricto, no te permitirá realizar esto y provocará un error.

"use strict"; nombre = "Andres" console.log(nombre) // ReferenceError: nombre is not defined

Ejemplo usando el modo estricto en una función

Si realizas el siguiente código que retornas una variable no declarada, no va a ocurrir un error y el programa se va a ejecutar con normalidad.

function myFunction(){ return pi = 3.14 } console.log(myFunction()) // 3.14

En modo estricto, no te permitirá realizar esto y provocará un error.

"use strict"; function myFunction(){ return pi = 3.14 } console.log(myFunction()) // ReferenceError: pi is not defined

Contribución creada por: Andrés Guano.