介绍
JavaScript 是一种动态类型语言,这意味着解释器在运行时确定变量类型。这允许我们将不同类型的数据存储在同一个变量中。但是如果没有文档和一致性,我们很有可能在使用代码时不知道变量是什么类型。
当我们打算对数字进行操作时,如果我们对字符串或数组进行操作,可能会导致奇怪的结果。在本文中,我们将了解可以帮助我们确定所使用的变量是否为数字的各种函数。
不应处理诸如“100”之类的类似字符串的数字,并且在 JavaScript 中像 NaN、Infinity 和 -Infinity 这样的特殊值都是数字,但我们将忽略它们。
基于这些需求js判断是否是英语数字,最好使用 Number 对象内置的 isFinite() 函数。但有时我们也使用其他函数,如 Number.isNaN() 和 typeof() 等。
首先创建一些测试变量:
- let intVar = 2;
- let floatVar = 10.5;
- let stringVar = '4';
- let nanVar = NaN;
- let infinityVar = Infinity;
- let nullnullVar = null;
- let undefinedundefinedVar = undefined;
使用 Number.isFinite() 函数
Number.isFinite() 被函数用来检查一个变量是否是一个数字,但它也被用来检查它是否是一些特殊的值。遇到 NaN、Infinity 或 -Infinity 时返回 false。
对上面定义的变量进行下一次测试:
- > Number.isFinite(intVar);
- true
- > Number.isFinite(floatVar);
- true
- > Number.isFinite(stringVar);
- false
- > Number.isFinite(nanVar);
- false
- > Number.isFinite(infinityVar);
- false
- > Number.isFinite(nullVar);
- false
- > Number.isFinite(undefined);
- false
结果令人满意。特殊数值和所有非数值变量都被忽略。如果要检查变量是否为数字,Number.isFinite() 函数是最佳选择。
使用 Number.isNaN() 函数
标准 Number 对象有一个 isNaN() 方法。用于判断传入的参数值是否为NaN。由于我们要检查变量是否为数字,我们需要使用 NOT 运算符!在检查。
现在看看我们是否可以通过添加 Not 运算符和 Number.isNaN() 函数来仅过滤数字:
这种方法相当宽松js判断是否是英语数字,因为它接受的值根本不是数字。当您知道您的值是一个数字并且想要检查它是否是一个 NaN 值而不是常规数字时,此方法最有效。
使用 typeof() 函数
typeof() 函数是一个全局函数,其参数可以接受变量或值,并返回其类型的字符串表示形式。JavaScript 有 9 种类型:
要验证变量是否为数字,我们只需要检查 typeof() 返回的值是否为“数字”。让我们尝试一个测试变量:
- > typeof(intVar) == 'number';
- true
- > typeof(floatVar) == 'number';
- true
- > typeof(stringVar) == 'number';
- false
- > typeof(nanVar) == 'number';
- true # 判断错误
- > typeof(infinityVar) == 'number';
- true # 判断错误
- > typeof(nullVar) == 'number';
- false
- > typeof(undefined) == 'number';
- false
typeof() 函数比 Number.isNaN() 好得多。它可以正确判断 null 和 undefined 不是数字。但如果是 NaN 和 Infinity,它将返回 true。
虽然这在技术上是正确的,但 NaN 和 Infinity 是我们在大多数情况下忽略的特殊数值。
总结
本文研究如何检查 JavaScript 中的变量是否为数字。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 欧资源网