为什么在我的函数 parseInt 中没有 return 我传递给它的字符串中的 0?

Why in my function parseInt doesn't return the 0 from the string I pass to it?

parseInt 当我在下面的函数中使用它时 return 不是 0 :

    const getGuestsCount = guestsInput => {
  if (parseInt(guestsInput)) {

    return parseInt(guestsInput);
  }

  return 'not a number';
};

例如,getGuestsCount('0 we won\'t visit you!!'); returns“不是数字”

但是如果我们在函数外使用parseInt就没问题了, parseInt('0 we won\'t visit you!!'); returns 0 符合预期

由于 parseInt('0 we won\'t visit you!!') 的计算结果为 0,您的 IF 条件为负,因此函数 returns not a number.

也许您正在寻找 if (!isNaN(parseInt(str)) { ... }

const getGuestsCount = guestsInput => {
  var guests = parseInt(guestsInput, 10);

  if (!isNaN(guests)) {
    return guests;
  }

  return NaN;
};

此外,检查 JavaScript 中的数字有点麻烦,您应该检查 Confusion between isNaN and Number.isNaN in javascript 和其他建议的资源以更好地理解问题。