function - 为什么在我的函数 parseInt 中没有从我传递给它的字符串中返回 0?
问题描述
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
解决方案
由于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 中检查数字有点麻烦,您应该检查JavaScript 中 isNaN 和 Number.isNaN 之间的混淆以及其他建议的资源,以更好地理解问题。
推荐阅读
- ios - 使用 PlistBuddy 获取应用程序版本返回“CFBundleShortVersionString 不存在”
- prestashop - Prestashop 1.7.5 经典运费不显示
- irc - IRC (RFC 1459) 消息前缀
- linux - 从 CLI 读取文件内容时,新行替换为空格
- html - 如何将 YoutubePlaylist 包含到 html 中?
- html - nth-child 选择错误的孩子
- android - 如何从 LinkedIn API 获取“大学名称”?
- python - 如何在熊猫中将数据框转换为多级数据框
- database - 如何在 React 项目中连接 LowDB?
- python - Python中的正则表达式不匹配