如何在 JavaScript 中 return 为空?

How to return null in JavaScript?

有人帮我解决JavaScript中的“星期几练习”吗? 我在MDN上搜索了很多次,但我仍然不明白null是什么,以及如何使用null。

如果参数 (num) 小于 1 或大于 7,函数应该 return null。

const days = ['Monday','Tuesyday','Wednesday','Thursday','Friday','Saturday','Sunday'];

let returnDay = (num) => {
    if (1 <= num <= 7) {
        return (days[num -1]);
    } else {
        return null;
    }
    
};

returnDay(1); // Monday
returnDay(7); // Sunday
returnDay(4); // Thursday
returnDay(0); // null

1 <= num <= 7 并不像您认为的那样。在 JavaScript 中,二元运算符从左到右求值。所以 1 <= num <= 7 实际上是 (1 <= num) <= 7,它是 true <= 7false <= 7(取决于 num 是什么)。无论哪种方式,它的计算结果都会是 true,但不要问我为什么,因为无论如何你真的不应该将布尔值与数字进行比较。由于条件始终为 true,因此永远不会执行 else 分支,因此您永远不会得到 null.

我觉得你要写的是:

if (1 <= num && num <= 7) {
   ...
} else {
   ...
}

此外,请记住数组索引以 0 开头。在您的示例中,days[1] 将是 'Tuesday',而不是 'Monday'

希望这个回答对您有所帮助:)

const days = ['Monday', 'Tuesyday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];

const returnDay = (num) => {
  const day = num - 1;
  if (days[day]) { // since you passing 0 there is no such element in the array at index -1,
                  //so if statement essentially evaluates to false and returning null right away;
    return days[day];
  }
  return null;
};

console.log(returnDay(1)); // Monday
console.log(returnDay(7)); // Sunday
console.log(returnDay(4)); // Thursday
console.log(returnDay(0)); // null