Syb*_*per 4 javascript math infinity
为什么会这样:
1 === 1;// true
0 === -0;// true
1/0 === 1/-0;// false
Run Code Online (Sandbox Code Playgroud)
原因:
1/0=Infinite;
1/-0=-Infinite;
Run Code Online (Sandbox Code Playgroud)
问题:
为什么 1/0 或 1/-0 不是Undefined或NaN?
它不可能是 Infinity 或 -Infinity,因为 0 等于 -0,所以 1/0 等于 1/-0 我应该说,但为什么不是呢?以及为什么它不是“未定义”(我的计算器所说的)或“NaN”。
这是因为IEEE 754 规范是这样定义的。
\n\n然而,这是有原因的:仿射扩展实数系统将实数扩展到两个无穷大,这为极限计算提供了更多空间。因此,通过此扩展,除以零就不是undefinedor NaN。
考虑以下对于正x成立:
\n\n林x\xe2\x86\x920 (x) = 林x\xe2\x86\x920 (-x)
\n\n然而,对于正x ,以下情况不成立:
\n\n林x\xe2\x86\x920 (1/x) = 林x\xe2\x86\x920 (1/-x)
\n\n请注意上述与限制符号的比较如何映射到您列出的比较:
\n\n0 === -0;// true\n1/0 === 1/-0;// false\nRun Code Online (Sandbox Code Playgroud)\n\n其次,除法始终保持以下不变性:当且仅当其中一个操作数为负时,结果为负。
\n\n这两个考虑因素都在一定程度上解释了 IEEE 754 中的原因:
\n\n1/0 === Infinity\n1/-0 === -Infinity\nRun Code Online (Sandbox Code Playgroud)\n