这纯粹是一个教育问题。Javascript:什么是“ - 0”在干什么?
我正在研究一个我正在为之工作的公司的新版本的Web应用程序。当重写数学时,我碰到了这个:
document.getElementById("estResidual").value-0;
认为没有目的的“-0”,我删除它。但是当我尝试计算时,数字是waaayyyyyyy关闭。然后我尝试重新添加“-0”,瞧!一切都很好。
问题: “-0”做了什么改变值?
这纯粹是一个教育问题。Javascript:什么是“ - 0”在干什么?
我正在研究一个我正在为之工作的公司的新版本的Web应用程序。当重写数学时,我碰到了这个:
document.getElementById("estResidual").value-0;
认为没有目的的“-0”,我删除它。但是当我尝试计算时,数字是waaayyyyyyy关闭。然后我尝试重新添加“-0”,瞧!一切都很好。
问题: “-0”做了什么改变值?
这是(ab)使用JavaScript的软打字行为。在这种情况下,将一个字符串转换为float:
> "13"
"13"
> "13"-0
13
> "1.01"-0
1.01
一元+
会做同样的:
> +"13"
13
> +"9.9"
9.9
注意,使用+
反而会转换成整数0
成字符串并连接它:
> "13"+0
"130"
这是全部标准化的。有关这些操作员应该如何操作的明确细节,可以随时检查ECMAScript语言规范(例如,addition,subtraction,unary plus)。
注 - 当您使用'+ 0'时,它可能仍然看起来像一个串联。与减号不混淆。 – Floris
@弗洛伊斯 - 只是重新读你的评论,并意识到这一点...所以我删除了我的。 :) – Steve