Infinity

在 JavaScript 中,还有一种叫做 Infinity 的特殊值。它所代表的是超出了 JavaScript 处
理范围的数值。但 Infinity 依然是一个数字,我们可以在控制台使用 typeof 来测试
Infinity。当我们输入 1e308 时,一切正常,但一旦将后面的 308 改成 309 就出界了。实
践证明,JavaScript所能处理的最大值是1.7976931348623157e+308,而最小值为5e-324。

Infinity;
Infinity
typeof Infinity;
“number”
1e309;
Infinity
1e308;
1e+308
另外,任何数除以 0 结果也为 Infinity:
var a = 6 / 0;
a;
Infinity
Infinity 表示的是最大数(或者比最大数还要大的数),那么最小数该如何表示呢?
答案是在 Infinity 之前加一个负号:
var i = -Infinity;
i;
-Infinity
typeof i;
“number”
这是不是意味着我我们可以得到双倍的 Infinity 呢?—毕竟我们可以从 0 加到
Infinity,也可以从 0 减到-Infinity。事实上这是不可能的,因为即便将正负 Infinity
相加,我们也不会得到 0,而是会得到一个叫做 NaN(Not A Number 的缩写,即不是数字)
的东西。

Infinity - Infinity;
NaN
-Infinity + Infinity;
NaN
另外,Infinity 与其他任何操作数执行任何算术运算的结果也都等于 Infinity。
Infinity - 20;
Infinity
-Infinity * 3;
-Infinity
Infinity / 2;
Infinity
Infinity – 99999999999999999;
Infinity

还记得之前见过的那个 NaN 吗?尽管该值的名字叫做“不是数字”,但事实上它依然属于数字类型,只不过是一种特殊的数字罢了。

typeof NaN;
“number”
var a = NaN;
a;
NaN

如果我们在算术运算中使用了不恰当的的操作数,导致运算失败,该运算就会返回
NaN。例如当我们试图让数字 10 与字符"f"相乘时,结果就会为 NaN,因为"f"显然是不
支持乘法运算的。

var a = 10 * “f”;
a;
NaN

而且 NaN 是有传染性的,只要我们的算术运算中存在一个 NaN,整个运算就会失败。

1 + 2 + NaN;
NaN

你可能感兴趣的:(Infinity,javascript入门到进阶)