Si escribo Math.max(el.scrollHeight, el.offsetHeight, el.clientHeight) ¿esto siempre será igual el.scrollHeight ?
Generalmente, clientHeight <= offsetHeight <= scrollHeight . Hay casos raros en los que clientHeight > offsetHeight para el elemento html , pero no estoy seguro de si scrollHeight puede ser menor que los otros dos.
La propiedad offsetHeight incluye los bordes de los elementos, por lo que definitivamente puede ser mayor que scrollHeight. P.ej
let test = document.getElementById('test'); console.log("clientHeight = " + test.clientHeight); console.log("offsetHeight = " + test.offsetHeight); console.log("scrollHeight = " + test.scrollHeight); console.log("Max Height = " + Math.max(test.scrollHeight, test.offsetHeight, test.clientHeight)); #test { height:20px; border:0px solid red; border-block-width: 20px; background-color:blue; } <div id="test"></div>