Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Objeto global Window JS: API del DOM

En esta lección nos familiarizaremos con window. Es un objeto global proporcionado por el navegador.

A través de él se controlan las ventanas (pestañas) en el navegador. Contiene funciones para abrir una pestaña, controlar la posición de la página y mucho más:

// Abre una nueva pestaña
window.open();

El objeto window está disponible en la consola de DevTools. Intentemos llamar al método del ejemplo anterior allí.

Window

Aquí hay algunos ejemplos de sus capacidades:

// Devuelve un objeto que contiene información sobre la pantalla
window.screen;
// Screen {availWidth: 1280, availHeight: 775, width: 1280, height: 800, …}

// Desplaza la página hasta el punto (x-coord, y-coord)
window.scrollTo(0, 1000);

// Altura y ancho visibles de la página
// Cambian cuando se cambia el tamaño de la ventana
window.innerHeight;
window.innerWidth;

Además, dentro de window se encuentra el objeto document. Lo utilizaremos para trabajar con el contenido de la página en lecciones posteriores.

El objeto window establece el contexto de ejecución global. La etiqueta window almacena todas las demás propiedades y objetos globalmente accesibles dentro de sí misma. Cuando llamamos a funciones globales como alert() o console.log(), el navegador las busca en el objeto window. En otras palabras, en realidad estamos llamando a window.alert().

Lo mismo ocurre con todas las demás funciones utilizadas directamente y sin importar:

console.log('hey');
// window.console.log('hey');

Math.abs(5);
// window.Math.abs(5);

// Incluso se puede hacer esto
close();
// en lugar de window.close()

Peligro del estado global

La existencia del objeto window es una implementación técnica de JavaScript en la que no se debe confiar al desarrollar.

Consideremos este código:

window.globalProperty = 'Las variables globales son malas';

Al establecer una propiedad en window, automáticamente hacemos que esa propiedad esté disponible desde cualquier parte del código del navegador. En otras palabras, hemos creado una variable global.

Estas variables causan muchos problemas durante el desarrollo. No está claro de dónde provienen ni quién las modifica.

No se puede confiar en las variables globales. Existe la posibilidad de que se realicen cambios en ellas, lo que a menudo conduce a errores en el funcionamiento.

Además, en las páginas web se pueden encontrar varios scripts que no están relacionados entre sí. Pueden ser contadores de sistemas analíticos, herramientas de marketing y otras cosas similares. Todos ellos tienen acceso al mismo window.

Debido a esto, podemos encontrarnos en una situación en la que establecemos propiedades en window en un script y accidentalmente interrumpimos el funcionamiento de otro script que utiliza la misma propiedad global.

En un código bien escrito, el objeto window nunca se encuentra directamente. Pero es importante saber de su existencia para comprender cómo funciona JavaScript en los navegadores.


Trabajo independiente

  1. Abre la consola en tu navegador.
  2. Examina el objeto window.
  3. Intenta abrir una nueva pestaña:

    window.open();
    

Materiales adicionales

  1. Window / MDN Web Docs

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY