JavaScript Infinity属性

JavaScript Infinity属性

在JavaScript中,Infinity是一个具有有趣特性的特殊数字:大于任何有限的数字。当我们在条件语句和算术运算中使用无限数字时,我们可能会感到惊讶。在不事先了解Infinity的特性的情况下,这种操作是有效的。

让我们来看一下JavaScript中Infinity的特性,了解其用例,并避免常见陷阱。

正无穷和负无穷是另外两个特殊值。请注意,程序表达式”+Infinity”(Infinity)和”-Infinity”会产生这两个无限的Number值。

正无穷

该数字是Infinity的初始值。正无穷大于任何其他有限数字。

它与数学上的无穷大有以下不同之处。

  • 如果我们将正值除以正无穷,我们得到正0。
  • 如果我们将任何负值除以正无穷,我们得到负0。
  • 0乘以正无穷等于NaN。
  • NaN乘以正无穷等于NaN。
  • 如果我们开始将正无穷除以负值,我们得到负无穷(除了负无穷)
  • 如果我们开始将正无穷除以正整数,我们得到正无穷(除了正无穷)
  • 正无穷除以正无穷(无论是负无穷还是正无穷)等于NaN。

语法

以下示例显示了POSITIVE INFINITY方法。

Number.POSITIVE_INFINITY

示例

以下示例显示了正无穷方法。我们可以使用正数和返回值。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h2> The Positive Infinity Property </h2>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<p id = "demo4"></p>
<script>
function checkValue(bigValue) {
  if (bigValue === Number.POSITIVE_INFINITY) {
    return 'Process number as negative Infinity';
  }
  return bigValue;
}
document.getElementById("demo2").innerHTML = checkValue(Number.MAX_VALUE);
document.getElementById("demo3").innerHTML =
checkValue(Number.MAX_VALUE * 3);
document.getElementById("demo1").innerHTML = Number. POSITIVE_INFINITY;
const result_data = typeof(Infinity);
document.getElementById("demo4").innerHTML = result_data;
</script>
</body>
</html>

输出

该图像显示了简单无限信息作为输出。

JavaScript Infinity属性

负无穷大

在JavaScript中,还存在一个负无穷大(-Infinity),它具有值为Number.NEGATIVE_INFINITY的特性。-Infinity小于任何有限数。

从以下几个方面,它与数学中的无穷大不同:

  • 当与任何其他数相除时,负无穷大会得到-0(与0不同)。
  • 将负无穷大除以自身或正无穷大,会返回NaN。
  • 当将负无穷大除以正数(除了正无穷大)时,结果为负无穷大。
  • 负无穷大乘以任何负数(除了负无穷大)都等于正无穷大。
  • 如果将负无穷大乘以NaN,结果是NaN。
  • NaN是0和负无穷大的结果。
  • 两个负等式的和总是等于正无穷大。
  • 正无穷大总是正负无穷大的乘积。

语法

以下示例展示了NEGATIVE INFINITY方法。

Number.NEGATIVE _INFINITY

示例

以下示例展示了NEGATIVE INFINITY方法。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h2> The Negative Infinity Property </h2>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<p id = "demo4"></p>
<script>
function checkValue(bigValue) {
  if (bigValue ==  Number.NEGATIVE_INFINITY) {
    return 'Process number as negative Infinity';
  }
  return bigValue;
}
document.getElementById("demo2").innerHTML = checkValue(-Number.MAX_VALUE);
document.getElementById("demo3").innerHTML =
checkValue(-Number.MAX_VALUE * 3);
document.getElementById("demo1").innerHTML = Number.NEGATIVE_INFINITY;
const result_data = typeof (-Infinity);
document.getElementById("demo4").innerHTML = result_data;
</script>
</body>
</html>

输出

此图像显示输出为负无穷大的信息。

JavaScript Infinity属性

检查是否为无穷大

Number.isFinite()方法用于检查传入的数字是否为有限数。它不是正无穷大、负无穷大或者不是一个数字。

语法

下面的语法展示了一个无穷大的值。

Number.isFinite(value);

参数

  • 将被检查是否为有限数的值。

返回值

  • 如果输入值是有限数,则返回布尔值 true。否则,返回 false。

示例

以下示例显示了 INFINITY 方法。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h2> The Infinity Property </h2>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<p id = "demo4"></p>
<script>
document.getElementById("demo2").innerHTML = Number.isFinite(150);
document.getElementById("demo3").innerHTML =
Number.isFinite(Infinity);
document.getElementById("demo1").innerHTML = Number.isFinite(-Infinity);
document.getElementById("demo4").innerHTML = Number.isFinite(-150);
</script>
</body>
</html>

输出

该图片显示了负面和正面信息作为输出。

JavaScript Infinity属性

什么时候应该使用无穷大

无穷大的值在涉及数字比较的计算中很有用。

例如,在查找数组中的最小值时,我们可以用无穷大初始化最小变量。

function findMinvalue(array_var) {
  let min_val = Infinity;
  for (const key of array_var) {
    min_val = Math.min(min_val, key);
  }
  return min_val;
}
findMinvalue([4, 8, 7, 1, 6, 2]);

因为每个有限值都小于无穷大,所以最小值将成为第一次for()迭代的第一个项目。

无穷大的陷阱

我们很少会处理无穷大的值。然而,了解无限属性可能出现的时机是很重要的。

有多种方法可以获得无穷大的值。

  • 解析数字
  • JSON序列化
  • 最大数溢出
  • 数学函数

解析数字

假设我们有一个从用户那里收集信息的表单。我们有一个表单上的字段,用户可以在其中输入他们的input_val。

  • 因为表单字段的值是一个字符串,我们必须将其转换为数字:
let input_val = parseInt('243');
console.log(input_val); // 120
  • 这完美运作。如果输入的字符串无法转换为数字,parseInt()将返回NaN:
let input_val = parseInt('Bigger than 243');
console.log(input_val); // NaN
  • 如果输入字符串是无穷大(Infinity),parseInt() 返回 NaN,因为无穷大数字是无法识别的:
let input_val = parseInt('Infinity');
console.log(input_val); // NaN

语法

以下语法应用 parseFloat() 函数。

let input_val = parseFloat('Infinity');
console.log(input_val); // Infinity

parseFloat()函数可以识别Infinity,它会返回一个无穷大的数。当输入字段包含字符串”Infinity”时,最好生成一个验证错误。

示例

下面的示例展示了parseFloat()函数的使用。我们可以使用正无穷和负无穷的数据。函数使用parseFloat()函数返回有限和无限值。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h4> The parseFloat() Function </h4>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<p id = "demo4"></p>
<script>
//infinity value
let input_val = parseFloat('Infinity');
//infinity value
let input_val1 = parseFloat(40018**7615);
//negative infinity value
let input_val3 = parseFloat('-Infinity');
//finite value
let input_val4 = parseFloat(40018**21);
document.getElementById("demo1").innerHTML =
input_val;
document.getElementById("demo2").innerHTML =
input_val1;
document.getElementById("demo3").innerHTML =
input_val3;
document.getElementById("demo4").innerHTML =
input_val4;
</script>
</body>
</html>

输出

图片显示了以输出形式呈现的所有类型的无限信息。

JavaScript Infinity属性

JSON序列化

JSON.stringify()将无穷大的数字转换为null值。

语法

以下语法显示了JSON序列化方法。

<script>
const student= {
 rate: Infinity
};
JSON.stringify(student); // => '{ "rate": null }'
</script>
  • 无限性是rate属性。然而,当转换为JSON时,“rate”值变为空。

示例

下面的示例显示了JSON序列化方法。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h4> The JSON Serialization Property </h4>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<script>
//infinity value
const student= {
 rate: Infinity
};
var data_val = JSON.stringify(student);
//finite value
const student1= {
 mark: 80
};
var data_val1 = JSON.stringify(student1); 
//both finite and Infinity value
const student2= {
 name: "JavaTpoint",
 number:2,
 mark: Infinity
};
var data_val2 = JSON.stringify(student2); 
document.getElementById("demo1").innerHTML =
data_val;
document.getElementById("demo2").innerHTML =
data_val1;
document.getElementById("demo3").innerHTML =
data_val2;
</script>
</body>
</html>

输出

图像显示了无穷大值作为输出。

JavaScript Infinity属性

最大数字溢出

MAX VALUE是JavaScript的最大浮点数。当尝试使用一个大于MAX_VALUE的数字时,JavaScript会将其转换为Infinity。我们可以进行指数、乘法等数学运算。

语法

以下语法显示了最大数字溢出的方法。

<script>
let input_val = input_value * Number.MAX_VALUE;
let input_val4 = Math.pow(base_value, ex_value);
</script>

示例

下面的示例展示了最大数溢出的方法。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h4> Maximum number overflows </h4>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<p id = "demo4"></p>
<script>
//infinity value
let input_val = 3 * Number.MAX_VALUE;
//negative infinity value
let input_val1 = Math.pow(-418, 2501);
//negative infinity value
let input_val3 = -3 * Number.MAX_VALUE;
//finite value
let input_val4 = Math.pow(418, 2501);
document.getElementById("demo1").innerHTML =
input_val;
document.getElementById("demo2").innerHTML =
input_val1;
document.getElementById("demo3").innerHTML =
input_val3;
document.getElementById("demo4").innerHTML =
input_val4;
</script>
</body>
</html>

输出

该图像显示了所有类型的无限信息作为输出。

JavaScript Infinity属性

数学运算

在JavaScript中,Math命名空间中的一些函数可以返回无限大的数。

当一个函数没有任何参数时,Math.max()返回”-Infinity”,Math.min()返回”Infinity”。如果JavaScript尝试在空数组中查找最大值或最小值,我们可能会感到惊讶。

语法

下面的语法显示了无穷大属性的数学运算。

<script>
const array_var = [values];
Math.max(?array_var);
Math.min(?array_var);
</script>

示例

以下示例使用数学运算来表达无限性属性。

<!DOCTYPE html>
<html>
<body>
<h3> JavaScript Global Properties </h3>
<h4> Mathematical operations </h4>
<p id = "demo1"></p>
<p id = "demo2"></p>
<p id = "demo3"></p>
<p id = "demo4"></p>
<script>
//finite value
const array_var1 = [4, 1, 3, 2, 7];
var input_val1 = Math.max(...array_var1);
var input_val2 = Math.min(...array_var1);
const array_var2 = [];
//negative infinity value
var input_val3 = Math.max(...array_var2);
//infinity value
var input_val4 = Math.min(...array_var2);
document.getElementById("demo1").innerHTML =
input_val1;
document.getElementById("demo2").innerHTML =
input_val2;
document.getElementById("demo3").innerHTML =
input_val3;
document.getElementById("demo4").innerHTML =
input_val4;
</script>
</body>
</html>

输出

图像显示了各种类型的无限信息作为输出。

JavaScript Infinity属性

最重要的要点

  • 在JavaScript中,Infinity表示无限大的概念。任何有限的数都小于Infinity,而没有有限的数大于-Infinity。
  • 在JavaScript中,比较无限值很简单:Infinity === True Infinity。Number.isFinite()确定供给的参数是否是有限数。
  • 在启动需要数值比较的算法时,我们可以使用Infinity来初始化变量。确定数组的最小值是使用示例之一。
  • 在从输入中解析数值时,必须谨慎使用Infinity:通过number (‘Infinity’)、parseFloat(‘Infinity’)返回实际的Infinity数。使用JSON.stringify()序列化的无限数为null。

结论

在JavaScript中,无限大数或数据处理用于数学运算和大型数据。对于用户和开发人员来说,使用无限大数或数据处理是一种简单而实用的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程