摘要: 在本教程中,您将了解 JavaScript 无穷大和其特性。
JavaScript 无穷大简介
Infinity 是 全局对象 的一个属性。换句话说,它是一个全局变量。
Infinity 的初始值为 Number.POSITIVE_INFINITY,它大于其他有限数字。
JavaScript 还具有一个负的 Infinity (-Infinity),其值为 Number.NEGATIVE_INFINITY。-Infinity 小于任何有限数字。
Infinity 的类型是 number
const result = typeof (Infinity);
console.log(result); // numberCode language: JavaScript (javascript)检查无穷大
JavaScript 提供了 Number.isFinite() 来检查一个值是否为有限值。
Number.isFinite(value);Code language: JavaScript (javascript)如果 value 是有限的,它返回 true;如果 value 是无限的,则 Number.isFinite() 返回 false。
console.log(Number.isFinite(100)); // true
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(-Infinity)); // falseCode language: JavaScript (javascript)您还可以像这样将一个值与 Infinity 进行比较
let counter = 100;
console.log(counter === Infinity); // falseCode language: JavaScript (javascript)一个无限数字等于另一个无限数字
console.log(Infinity === Infinity); // trueCode language: JavaScript (javascript)无穷大的陷阱
1) parseFloat() 函数
假设您有一个收集用户信息的表单。在表单上,您有一个允许用户输入他们体重的字段。
由于表单字段的值是字符串,因此您需要将其转换为数字
let weight = parseInt('120kg');
console.log(weight); // 120Code language: JavaScript (javascript)这工作正常。如果用户输入无法转换为数字的字符串,则 parseInt() 返回一个 NaN
let weight = parseInt('More than 100kg');
console.log(weight); // NaNCode language: JavaScript (javascript)如果输入字符串是 Infinity,则 parseInt() 也返回 NaN,因为它不识别无穷大数字
let weight = parseInt('Infinity');
console.log(weight); // NaNCode language: JavaScript (javascript)但是,如果您使用 parseFloat() 函数,就像这样
let weight = parseFloat('Infinity');
console.log(weight); // InfinityCode language: JavaScript (javascript)…parseFloat() 函数识别 Infinity 并返回一个无限数字。
因此,当输入字段具有 'Infinity' 字符串时,最好发出验证错误。
2) JSON 序列化
JSON.stringify() 将无限数字序列化为 null。例如
const resource = {
amount: Infinity
};
let result = JSON.stringify(resource);
console.log(result);Code language: JavaScript (javascript)输出
{"amount":null}Code language: JSON / JSON with Comments (json)3) 数学方法
一些数学函数返回无限数字。
以下 Math.min() 方法返回 ratings 数组中的最小数字
let ratings = [1, 2, 3, 4, 5];
let max = Math.min(...ratings);
console.log(max); // 1Code language: JavaScript (javascript)但是,当 ratings 数组为空时,Math.min() 方法返回 Infinity
let ratings = [1, 2, 3, 4, 5];
//
somewhere in the code
ratings = []; // empty array
//
let max = Math.min(...ratings);
console.log(max); // InfinityCode language: JavaScript (javascript)总结
Infinity代表一个无限数字。它是一个全局变量,其值为Infinity。Infinity大于任何有限数字,而-Infinity小于任何有限数字。parseFloat('Infinity')返回Infinity。