Java 脚本无限 属性
Java Script INFINITY property
我在 v8/math.js
中看到 var r = INFINITY;
但它在控制台中不起作用。
INFINITY 的来源是什么属性?
内部是如何实现的?
这是对 Infinity
的 CONSTANT 引用
来自mozilla.org:
[The] Infinity property is a numeric value representing infinity.
它的行为类似于无穷大,即任何正数乘以 Infinity
就是 Infinity
,除以 Infinity
就是 0
。
console.log(1 * Infinity); // Infinity
console.log(1 / Infinity); // 0
可能是在该代码库中定义的引用,用于引用正无穷大。正无穷大和负无穷大是 JavaScript.
中使用的 IEEE 754 双精度浮点标准的特征
实施
Sign Exponent Fraction
0 11⋯11 00⋯00 +Infinity
1 11⋯11 00⋯00 -Infinity
来源
我可以在该代码库 here 中看到一个 INFINITY
宏。但它在 Python 中。它如何进入 JavaScript 可能是构建的一部分。
看起来他们的 CONST 引用(为了可读性)是 Infinity (Number.POSITIVE_INFINITY
)。
What is the source? And how is it implemented?
它是 JS 运行时的一部分,可能会或可能不会在不同的浏览器中区分。实现将是一个大于任何其他数字的数字:
Number.POSITIVE_INFINITY > Number.MAX_SAFE_INTEGER // true
Number.POSITIVE_INFINITY > Number.MAX_VALUE // true
Infinity + Infinity // Infinity
Infinity - Infinity // NaN, interesting
此值的行为与数学无穷大略有不同:
- 任何正值,包括 POSITIVE_INFINITY,乘以 POSITIVE_INFINITY 就是 POSITIVE_INFINITY。
- 任何负值,包括 NEGATIVE_INFINITY,乘以 POSITIVE_INFINITY 就是 NEGATIVE_INFINITY。
- 零乘以 POSITIVE_INFINITY 是 NaN。
- NaN 乘以 POSITIVE_INFINITY 是 NaN。
- POSITIVE_INFINITY 除以 NEGATIVE_INFINITY 以外的任何负值,得到 NEGATIVE_INFINITY.
- POSITIVE_INFINITY 除以除 POSITIVE_INFINITY 以外的任何正值,得到 POSITIVE_INFINITY.
- POSITIVE_INFINITY 除以 NEGATIVE_INFINITY 或 POSITIVE_INFINITY,结果为 NaN。
- 任何数字除以 POSITIVE_INFINITY 都是零。
这看起来与整个实现差不多,将其编写为代码应该不会太难。
INFINITY
貌似是 Infinity
:
utils.InstallConstants(global, [
// ECMA 262 - 15.1.1.1.
"NaN", NaN,
// ECMA-262 - 15.1.1.2.
"Infinity", INFINITY,
// ECMA-262 - 15.1.1.2.
"undefined", UNDEFINED,
]);
至于为什么它不能从控制台使用,可能是因为它 运行 在不同的范围内(即不同于 window)。我最好的猜测是 global
对象是全局对象,这就是为什么你可以像那样使用 INFINITY
(而不是应该相同的 global.INFINITY
)的原因。
我在 v8/math.js
中看到var r = INFINITY;
但它在控制台中不起作用。
INFINITY 的来源是什么属性?
内部是如何实现的?
这是对 Infinity
来自mozilla.org:
[The] Infinity property is a numeric value representing infinity.
它的行为类似于无穷大,即任何正数乘以 Infinity
就是 Infinity
,除以 Infinity
就是 0
。
console.log(1 * Infinity); // Infinity
console.log(1 / Infinity); // 0
可能是在该代码库中定义的引用,用于引用正无穷大。正无穷大和负无穷大是 JavaScript.
中使用的 IEEE 754 双精度浮点标准的特征实施
Sign Exponent Fraction
0 11⋯11 00⋯00 +Infinity
1 11⋯11 00⋯00 -Infinity
来源
我可以在该代码库 here 中看到一个 INFINITY
宏。但它在 Python 中。它如何进入 JavaScript 可能是构建的一部分。
看起来他们的 CONST 引用(为了可读性)是 Infinity (Number.POSITIVE_INFINITY
)。
What is the source? And how is it implemented?
它是 JS 运行时的一部分,可能会或可能不会在不同的浏览器中区分。实现将是一个大于任何其他数字的数字:
Number.POSITIVE_INFINITY > Number.MAX_SAFE_INTEGER // true
Number.POSITIVE_INFINITY > Number.MAX_VALUE // true
Infinity + Infinity // Infinity
Infinity - Infinity // NaN, interesting
此值的行为与数学无穷大略有不同:
- 任何正值,包括 POSITIVE_INFINITY,乘以 POSITIVE_INFINITY 就是 POSITIVE_INFINITY。
- 任何负值,包括 NEGATIVE_INFINITY,乘以 POSITIVE_INFINITY 就是 NEGATIVE_INFINITY。
- 零乘以 POSITIVE_INFINITY 是 NaN。
- NaN 乘以 POSITIVE_INFINITY 是 NaN。
- POSITIVE_INFINITY 除以 NEGATIVE_INFINITY 以外的任何负值,得到 NEGATIVE_INFINITY.
- POSITIVE_INFINITY 除以除 POSITIVE_INFINITY 以外的任何正值,得到 POSITIVE_INFINITY.
- POSITIVE_INFINITY 除以 NEGATIVE_INFINITY 或 POSITIVE_INFINITY,结果为 NaN。
- 任何数字除以 POSITIVE_INFINITY 都是零。
这看起来与整个实现差不多,将其编写为代码应该不会太难。
INFINITY
貌似是 Infinity
:
utils.InstallConstants(global, [
// ECMA 262 - 15.1.1.1.
"NaN", NaN,
// ECMA-262 - 15.1.1.2.
"Infinity", INFINITY,
// ECMA-262 - 15.1.1.2.
"undefined", UNDEFINED,
]);
至于为什么它不能从控制台使用,可能是因为它 运行 在不同的范围内(即不同于 window)。我最好的猜测是 global
对象是全局对象,这就是为什么你可以像那样使用 INFINITY
(而不是应该相同的 global.INFINITY
)的原因。