我是 JavaScript 新手,我知道我做错了什么,因为我不断得到true
结果。有人可以指出我的错误吗?提前致谢。
function checkForVowel(x){
if(x == "a", "e", "i", "o", "u"){
document.write("true");
}else{
document.write("false");
}
}
checkForVowel("n");
我是 JavaScript 新手,我知道我做错了什么,因为我不断得到true
结果。有人可以指出我的错误吗?提前致谢。
function checkForVowel(x){
if(x == "a", "e", "i", "o", "u"){
document.write("true");
}else{
document.write("false");
}
}
checkForVowel("n");
JavaScript 的比较运算符并不神奇。您需要分别进行每个比较。您可以使用逻辑 OR 检查“其中任何一个” ||
:
if(x == "a" || x == "e" || x == "i" || x == "o" || x == "u")
或者,由于您有许多单字符串,您可以使用indexOf
. 但是如果您刚刚开始,上述内容可能更容易理解。
if(x.length === 1 && 'aeiou'.indexOf(x) > -1)
至于你为什么说实话,那,
实际上是 JavaScript 中的一个运算符,主要是为了迷惑人而发明的1。它评估其左侧,然后评估其右侧,并返回右侧。所以你的表达总结如下:
if(x == "a", "e", "i", "o", "u")
if("e", "i", "o", "u")
if("i", "o", "u")
if("o", "u")
if("u")
这是一个真实的价值。
1其实不是。
有时,针对数据结构进行测试的代码比使用大量if/else
代码要干净得多。哪个更快可能取决于特定的浏览器引擎以及您有多少比较。这个查看字符串是否存在于元音字符串中:
var vowels = "aeiou";
function checkForVowel(x) {
return(vowels.indexOf(x.toLowerCase()) >= 0);
}
这个测试以查看测试字符是否在此处不需要的 javascript 对象中,但这是另一种有趣的测试某些东西是否在集合中的方法:
var vowels = {a: true, e: true, i: true, o: true, u: true};
function checkForVowel(x) {
return(x.toLowerCase() in vowels);
}
我不知道为什么,但没有人建议这个。:/
function checkForVowel(x){
document.write(/[aeiou]/i.test(x)); //Clearly this is even simpler than
} // other methods.
或者
function checkForVowel(x){
if(x.search(/[aeiou]/i) != -1){
document.write("true");
}else{
document.write("false");
}
}