【发布时间】:2017-02-05 11:49:34
【问题描述】:
我的第一个语句工作正常,但它掩盖了下面的 else if 语句并且只是重复,可能是因为参数相同?我似乎无法弄清楚为什么,因为我使用了分号并正确地将条件括起来。我很想解释任何人提出的解决方案!
function sayHiToGrandma(string) {
if (string.toLowerCase() === 'hello') {
return "I can't hear you!";
}
else if (string.toUpperCase() === 'HELLO') {
return "YES INDEED!";
}
}
【问题讨论】:
-
'Hello'.toLowerCase()是'hello'。'Hello'.toUpperCase()是'HELLO'。两者将同时为真或假。 -
如果字符串是 'hello' 的任何大写/小写组合,则永远不会达到第二个条件
-
它“遮蔽”了 else if 语句是什么意思?你的意思是对 sayHiToGrandma 函数的一次调用会产生两个返回语句吗?如果是这样,那是不可能的。一旦你从一个函数中
return,根据定义,函数停止执行并且调用堆栈继续前进。所以你永远不会看到 else if 体执行,函数总是在第一个 if 体中返回,因为它们的真值条件是相同的。 -
实验室的设置方式非常混乱。我认为我真的不想再做实验室了,我或多或少只是专注于完成它,因为我不想让它未完成。 idk 如果你们熟悉 learn.co 页面,但对于这所学校来说,它是熨斗学校。我只是想看看他们运行什么类型的程序。 @JF 我有一种感觉。
-
和 @jcd,我的选词很糟糕。我应该说它永远不会到达函数的那部分,我明白为什么
标签: javascript function if-statement return