If 语句返回 undefined

If statement returning undefined

我试图让这个函数根据我的 if 语句显示 'true' 或 'false'。 该函数应该 return 布尔值 'true' 如果 'value' 大于 'rangeStart' 且小于 'rangeStop'。否则 它应该 return 布尔值 'false'.

var inRange = function(rangeStart3,rangeStop3,value) {
    if (value > rangeStart3&&value < rangeStop3)
    return inRange;
};

ANSWER = inRange(167,521,264)

我得到答案 "undefined" 但不确定我做错了什么。 我还想补充一点,我是 Javascript!

的新手

如果值大于 rangestart 且值小于 rangestop,这将 return。

if (value > rangeStart3 && value < rangeStop3) return true
else return false

或者您可以用更少的代码编写它。

return (value > rangeStart3 && value < rangeStop3);

return inRange 应该避免。这是一个未定义的变量,而且还是函数本身的名字。

如果大小写不在

内,您还没有添加 return 值
var inRange = function(rangeStart3,rangeStop3,value) {
    return (value > rangeStart3 && value < rangeStop3);

};

更多书面和不言自明的解决方案:

var inRange = function(rangeStart3,rangeStop3,value) {
    if (value > rangeStart3&&value < rangeStop3) {
                return true;
              }
      else {
              return false;
   }
};

无用if:

var inRange = function(rangeStart3, rangeStop3, value) {
    return (value > rangeStart3 && value < rangeStop3);
};

现有代码导致 undefined 的原因是,当 if 的条件为假时,代码 运行 隐含的 return undefined; 存在于每个功能结束。