javascript - 在带有 if 语句的函数中检查某物是否为数字
问题描述
我想要一个函数接受两个参数,如果它们都是数字来告诉我哪个更大。如果它们中的一些不是数字,我也希望它给出一个很好的输出(因为它无论如何都无法计算它)。
我已经到了能够处理 int 但不能处理浮点数的地步。它超越了我的头脑,我想知道把它写下来的最佳做法是什么。
这是我到目前为止得到的;
var iamanumbergenius = function(a, b) {
if (Number.isInteger(a) && Number.isInteger(b)) {
if (a > b) {
console.log('first is greater');
} else if (b > a) {
console.log('second is greater');
} else {
console.log('equality is the answer');
}
} else { console.log('i only like nums'); }
}
对不起丑陋的代码,直接从 chrome 开发工具中带出来,没有什么可以不焦虑地按 Enter XD
很确定我错过了一些方法或类型的东西......也许还有一些布尔操作符和 number.isfloat?在那种情况下,我不确定在操作顺序方面之前是什么:|| 和 &&..
谢谢!我对这些东西真的很陌生,所以任何帮助都会很棒:)
解决方案
因为整数和浮点数都typeof
返回number
,所以您可以将它用于您的函数。
示范typeof
:
console.log(typeof 1.3);
以下是您在函数中实现它的方式:
if (typeof a === 'number' && typeof b === 'number')
另外,因为typeof NaN === 'number', you should use
isNaN() in your
if` 语句也是:
if (typeof a === 'number' && typeof b === 'number' && !(isNaN(a) || isNaN(b)))
推荐阅读
- c++ - 如何在简单的 C++ 项目中使用 Poco 库?
- javascript - 如何为此字符串构建正则表达式
- python - python何时复制添加到全局字典的本地列表?
- path - 如何找到 pipenv 安装的 PATH
- java - 如何使用retrofit2在地图中搜索标记?
- c# - 如何将 InControl 与 Unity UI 一起使用?
- sql-server - 无法使用 xp_cmdshell 在 SQL Server 中运行 PDFTK
- docker - 如何使用 docker-compose 启用 BuildKit?
- javascript - 如何使用 Promise 将值推送到数组?
- react-native - 在为 react native 项目更改 appName 后,在 android 和 iOS 中成功构建后发布构建崩溃