0

This code works fine on letters, returning if the letters are upper or lower case but it always returns the number as "6 is a uppercaseletter"

let userLetter = prompt("Please enter an uppercase, lowercase letter or a number");


if (typeof userLetter === 'number') {
    userLetter = userNumber;
    alert(`${userNumber} is a number`);
} else if (userLetter.toUpperCase() === userLetter) {
    alert(`${userLetter} is a uppercase letter`);
} else if (userLetter.toLowerCase() === userLetter) {
    alert(`${userLetter} is a lowercase letter`);
} else {
    alert('Something went wrong');
}
 

I expected the typeof operator would recognise that the input is a number but it doesn't. When a number is entered it always returns the uppercase option.

1 Answers1

2

prompt always returns a string (for which typeof returns "string").

You could use isNaN instead.

if (!isNaN(userLetter)) alert(`${userLetter} is a number`);
Unmitigated
  • 76,500
  • 11
  • 62
  • 80