You could just use a case-insensitive regular expression:
var isAlpha = function(ch){
return /^[A-Z]$/i.test(ch);
}
If you are supposed to be following the instructions in the comments about greater than and less than comparisons, and you want to check that the input is a string of length 1, then:
var isAlpha = function(ch){
return typeof ch === "string" && ch.length === 1
&& (ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z");
}
console.log(isAlpha("A")); // true
console.log(isAlpha("a")); // true
console.log(isAlpha("[")); // false
console.log(isAlpha("1")); // false
console.log(isAlpha("ABC")); // false because it is more than one character
You’ll notice I didn’t use an if statement. That’s because the expression ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z" evaluates to be either true or false, so you can simply return that value directly.
What you had tried with if (ch >= "A" && ch <= "z") doesn’t work because the range of characters in between an uppercase “A” and a lowercase “z” includes not only letters but some other characters that are between “Z” and “a”.