El documenty windowson objetos diferentes y tienen algunos eventos diferentes. Usar addEventListener()en ellos escucha eventos destinados a un objeto diferente. Debe usar el que realmente tiene el evento que le interesa.
Por ejemplo, hay un "resize"evento en el windowobjeto que no está en el documentobjeto.
Por ejemplo, el "DOMContentLoaded"evento es solo en el documentobjeto.
Básicamente, debe saber qué objeto recibe el evento que le interesa y utilizarlo .addEventListener()en ese objeto en particular.
Aquí hay un gráfico interesante que muestra qué tipos de objetos crean qué tipos de eventos: https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference
Si está escuchando un evento propagado (como el evento de clic), puede escuchar ese evento en el objeto del documento o en el objeto de la ventana. La única diferencia principal para los eventos propagados está en el tiempo. El evento golpeará el documentobjeto antes que el windowobjeto ya que ocurre primero en la jerarquía, pero esa diferencia generalmente es irrelevante para que pueda elegir cualquiera de los dos. En general, me parece mejor elegir el objeto más cercano a la fuente del evento que satisfaga sus necesidades al manejar eventos propagados. Eso hace pensar que usted escoja documentmás windowcuando cualquiera va a funcionar. Pero, a menudo me acerco aún más a la fuente y uso document.bodyo incluso a un padre común más cercano en el documento (si es posible).