<body> <div class="container"> <input type="number" id="first"> <input type="number" id="second"> <button id="butId">Максимум</button> <p id="out"> 123 </p> </div> <script> function min(a, b) { console.log('1'); if (a>b) return b else return a; } butId.addEventListener('click', function(e){ out.innerHTML=min(first,second); }) </script> </body> se suponía que debía mostrar en <p id='out'> el número mínimo de los dos escritos. muestra
[objeto HTMLInputElement]
en lugar de un número y no veo ningún error
Estás tratando de encontrar el valor mínimo de cada elemento, a diferencia del número dentro de él. En su lugar, desea utilizar
out.textContent = Math.min(first.valueAsNumber,second.valueAsNumber)
Aquí, obtenemos el valueAsNumber de cada cuadro de entrada y realizamos nuestro cálculo min() en él. Esto toma el texto dentro del cuadro de input y lo convierte en un número. También puede notar Math.min , JS tiene una función min incorporada, por lo que no necesita definir su propia función para ella. Además, es una buena práctica usar textContent para evitar la inyección de XSS.
Debe obtener el valor real ingresado en cada elemento <input> , no el elemento en sí.
butId.addEventListener('click', function(e) { out.innerHTML = min(+first.value, +second.value); }); Nota: El + antes de las variables las convierte en enteros.