JavaScript Number.isFinite() 方法
实例
检测参数是否为无穷大:
Number.isFinite(123) //true
Number.isFinite(-1.23) //true
Number.isFinite(5-2) //true
Number.isFinite(0) //true
Number.isFinite('123') //false
Number.isFinite('Hello') //false
Number.isFinite('2005/12/12') //false
Number.isFinite(Infinity) //false
Number.isFinite(-Infinity) //false
Number.isFinite(0 / 0) //false
尝试一下 »
定义和用法
Number.isFinite() 是 JavaScript 中的一个内置方法,用于判断一个值是否是有限数值(即是否是一个正常的数字,而非 Infinity、-Infinity 或 NaN)。
isFinite() 是 Number 对象的一部分,用来确保值是一个有效的、有限的数值类型。
提示: 如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。
Number.isFinite() 与全局的 isFinite()
函数不同,Number.isFinite()
不会进行类型转换,而是严格判断 value
是否为有限的数字。相比之下,isFinite()
方法会首先将其参数转换为数字再进行判断。
1、基本用法
实例
console.log(Number.isFinite(2)); // true: 2 是有限的数字
console.log(Number.isFinite(3.14)); // true: 3.14 是有限的数字
console.log(Number.isFinite(-100)); // true: -100 是有限的数字
console.log(Number.isFinite(1 / 0)); // false: Infinity 不是有限的数字
console.log(Number.isFinite(-1 / 0)); // false: -Infinity 不是有限的数字
console.log(Number.isFinite(NaN)); // false: NaN 不是有限的数字
console.log(Number.isFinite('2')); // false: '2' 是字符串,非数字
console.log(Number.isFinite(3.14)); // true: 3.14 是有限的数字
console.log(Number.isFinite(-100)); // true: -100 是有限的数字
console.log(Number.isFinite(1 / 0)); // false: Infinity 不是有限的数字
console.log(Number.isFinite(-1 / 0)); // false: -Infinity 不是有限的数字
console.log(Number.isFinite(NaN)); // false: NaN 不是有限的数字
console.log(Number.isFinite('2')); // false: '2' 是字符串,非数字
2、Number.isFinite() vs isFinite()
实例
console.log(isFinite(2)); // true: 全局 isFinite 会转换类型
console.log(isFinite('2')); // true: 字符串 '2' 被转换为数字 2
console.log(Number.isFinite(2)); // true: 2 是有限数字
console.log(Number.isFinite('2'));// false: 字符串 '2' 不是数字类型
console.log(isFinite('2')); // true: 字符串 '2' 被转换为数字 2
console.log(Number.isFinite(2)); // true: 2 是有限数字
console.log(Number.isFinite('2'));// false: 字符串 '2' 不是数字类型
3、NaN 和 Infinity
实例
console.log(Number.isFinite(NaN)); // false: NaN 不是有限数字
console.log(Number.isFinite(Infinity)); // false: Infinity 不是有限数字
console.log(Number.isFinite(-Infinity)); // false: -Infinity 不是有限数字
console.log(Number.isFinite(Infinity)); // false: Infinity 不是有限数字
console.log(Number.isFinite(-Infinity)); // false: -Infinity 不是有限数字
4、类型转换
Number.isFinite() 方法不会自动将传入值转换为数字,因此它在判断时是严格的。对于其他类型的值,它会直接返回 false。
实例
console.log(Number.isFinite(true)); // false: 布尔值 true 不是数字
console.log(Number.isFinite(undefined)); // false: undefined 不是数字
console.log(Number.isFinite(null)); // false: null 不是数字
console.log(Number.isFinite(undefined)); // false: undefined 不是数字
console.log(Number.isFinite(null)); // false: null 不是数字
浏览器支持
方法 | |||||
---|---|---|---|---|---|
Number.isFinite() | 19 | 12.0 | 16 | 9 | 22 |
语法
Number.isFinite(value)
参数值
参数 | 描述 |
---|---|
value | 要判断的值,可以是任意类型的数据(例如:数字、字符串、对象、布尔值等)。 |
返回值
类型 | 描述 |
---|---|
布尔型 | 如果 value 是一个有限的数字,返回 true。 如果 value 不是一个有限数字(例如:NaN、Infinity、-Infinity,或者非数字类型),返回 false。 |
技术细节
JavaScript 版本: | ECMAScript 6 |
---|