你不知道的 JavaScript 系列中( 12 ) - 特殊数值 无穷数

Posted Zina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你不知道的 JavaScript 系列中( 12 ) - 特殊数值 无穷数相关的知识,希望对你有一定的参考价值。

熟悉传统语言(C)的开发人员可能都遇到过编译错误(compiler error)或者运行时错误(runtime exception),例如 “除以0”。然后在 javascript 中上例的结果为 Infinity

 

var a = 1/0; // Infinity
var a = -1/0; // -Infinity

如果除法运算中的一个操作数为负数,则结果为 -Infinity。JavaScript 使用有限数字表示法,和纯粹的数学运算不同,JavaScript 的运算结果有可能溢出,此时结果为 Infinity 或者 -Infinity

 

var a = Number.MAX_VALUE; // 1.798e+308
a + a; // Infinity

计算结果一旦溢出为无穷数,就无法得到有穷数。换句话说,你可以从有穷到无穷,但无法从无穷回到有穷。

 

也许有人会问无穷除以无穷会得到什么结果?会不会是1或者无穷?可惜都不是,从数学和 JS 语言的角度来说,Infinity/Infinity 是一个为定义操作,结果为 NaN

 

有穷整数除以 Infinity,结果为 0 。有穷负数除以 Infinity,结果为 -0

以上是关于你不知道的 JavaScript 系列中( 12 ) - 特殊数值 无穷数的主要内容,如果未能解决你的问题,请参考以下文章

你不知道的JS系列 ( 12 ) - 声明提升

《你不知道的JavaScript》系列分享专栏

你不知道的 JavaScript 系列中( 2 ) - undefined 和 未声明

《你不知道的JavaScript[中卷]》12——生成器

《你不知道的JavaScript》三卷读后感

那些你不知道的炫酷开关交互效果(12种)