Dimensiones de ventana teniendo en cuenta el desplazamiento en JavaScript

Obtengamos las dimensiones de la ventana teniendo en cuenta la parte desplazada. Desafortunadamente, no existe una forma conveniente que funcione en todos los navegadores. A continuación se presentan soluciones que funcionan. No vale la pena profundizar en ellas, simplemente úsalas.

Altura teniendo en cuenta la parte desplazada:

javascriptlet scrollHeight = Math.max(
  document.body.scrollHeight, document.documentElement.scrollHeight,
  document.body.offsetHeight, document.documentElement.offsetHeight,
  document.body.clientHeight, document.documentElement.clientHeight
);

console.log(scrollHeight);

Anchura teniendo en cuenta la parte desplazada:

javascriptlet scrollWidth = Math.max(
  document.body.scrollWidth, document.documentElement.scrollWidth,
  document.body.offsetWidth, document.documentElement.offsetWidth,
  document.body.clientWidth, document.documentElement.clientWidth
);

console.log(scrollWidth);
Задание 1

Al hacer clic en el botón, muestra la altura teniendo en cuenta la parte desplazada.

Задание 2

Al hacer clic en el botón, muestra la anchura teniendo en cuenta la parte desplazada.

Задание 3

Al hacer clic en el botón, muestra la altura de la parte oculta por el desplazamiento.