Javascript 尝试测试空字符串时出现语法错误
在Javascript中,我尝试执行一项简单的任务,即测试并返回两个单词中最长的一个。如果单词是空的,那么返回应该是“空字符串”。在使用or elseif语句测试空字符串时,我一直遇到语法错误。我使用(!word1)和(!word2),因为我的理解是Javascript,它是一个布尔语句,应该是false。请告诉我哪里出了问题:Javascript 尝试测试空字符串时出现语法错误,javascript,string,Javascript,String,在Javascript中,我尝试执行一项简单的任务,即测试并返回两个单词中最长的一个。如果单词是空的,那么返回应该是“空字符串”。在使用or elseif语句测试空字符串时,我一直遇到语法错误。我使用(!word1)和(!word2),因为我的理解是Javascript,它是一个布尔语句,应该是false。请告诉我哪里出了问题: function longest(word1, word2) { if (word1.length >= word2.length) { return
function longest(word1, word2) {
if (word1.length >= word2.length) {
return (word1);
} else {
return (word2);
} else if (!word1) || (!word2) {
return "an empty string";
}
}
console.log(longest('hi'));
if
条件应正好由一对括号包围
如果(!word1)| |(!word2)将
else更改为else如果(!word1 | | |!word2)
您的else和else出现错误。这是你的问题的完整代码
function longest(word1, word2) {
if ((!word1) || (!word2)) {
alert ("an empty string");
} else if (word1.length >= word2.length) {
alert (word1);
}else{
alert (word2);
}
}
longest('hi');
您的“else”子句应该是您的if语句中的最后一个子句:
function longest(word1, word2) {
if (word1.length >= word2.length) {
return (word1);
} else if (!word1 || !word2) {
return "an empty string";
} else {
return (word2);
}
console.log(longest('hi'));
else if
不能跟在同一组中的else
后面,而if
需要在整个条件周围加一组括号。为什么返回的值周围有括号?非主题:否则,如果(!word1)|(!word2)
具有适当的语法,则应为第一个条件。通常您首先检查事物是否存在,然后对它们执行逻辑a | | b?a、 长度>=b.长度?答:b:“空字符串”
仍然会是关于意外的“else”的语法错误,是的,但其他回答者已经涵盖了这一点,我只想尽快帮助OP解决问题,然后关闭/删除这个垃圾问题。