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.
prompt
always returns a string (for which typeof
returns "string"
).
You could use isNaN
instead.
if (!isNaN(userLetter)) alert(`${userLetter} is a number`);