【问题标题】:Why in my function parseInt doesn't return the 0 from the string I pass to it?为什么在我的函数 parseInt 中没有从我传递给它的字符串中返回 0?
【发布时间】:2020-09-20 16:38:22
【问题描述】:

parseInt 在下面的函数中使用它时不返回 0:

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

    return parseInt(guestsInput);
  }

  return 'not a number';
};

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

但是如果我们在函数之外使用parseInt 就可以了, parseInt('0 we won\'t visit you!!'); 按预期返回 0

【问题讨论】:

    标签: function parseint


    【解决方案1】:

    由于 parseInt('0 we won\'t visit you!!') 的计算结果为 0,因此您的 IF 条件为负,因此该函数返回 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 和其他建议的资源以更好地理解问题。

    【讨论】:

      猜你喜欢
      • 2012-12-07
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2023-02-02
      相关资源
      最近更新 更多