Cuando utilizas la función prompt() en JavaScript, independientemente de si el usuario ingresa un número o cualquier otro tipo de dato, el valor retornado siempre será una cadena (string).
Por ejemplo, si solicitas al usuario que ingrese un número usando prompt():
var numero = prompt("Por favor, ingresa un número:");
Si el usuario ingresa "42" y hace clic en "Aceptar", la variable numero contendrá el valor "42" como una cadena (string), no como un número.
Si necesitas utilizar el valor ingresado como un número en tu código, puedes convertirlo utilizando parseInt() o parseFloat(), dependiendo de si el número es un entero o un decimal:
var numeroEntero = parseInt(numero, 10);
var numeroDecimal = parseFloat(numero);
En este caso, numeroEntero y numeroDecimal contendrán el valor numérico 42 en lugar de la cadena "42".
Ahora te preguntarás, ¿por qué el 10? Te explico
El 10 en el código que proporcioné es un argumento opcional para la función parseInt(), llamado "radix" o "base". Este argumento especifica en qué sistema numérico se debe interpretar la cadena. El valor 10 indica que queremos convertir la cadena a un número en base 10, es decir, el sistema numérico decimal que usamos comúnmente.
La función parseInt() puede trabajar con diferentes sistemas numéricos, como binario (base 2), octal (base 8) o hexadecimal (base 16), entre otros. Al proporcionar el argumento 10, aseguramos que la cadena se interprete como un número decimal.
Espero te haya sido de ayuda <3