为什么:
有没有合理的理由解释为什么parseInt不能同时处理-0,还是这只是JavaScript的一个怪异之处?
parseInt(-0, 10) // 0
parseInt('-0', 10) // -0
有没有合理的理由解释为什么parseInt不能同时处理-0,还是这只是JavaScript的一个怪异之处?
parseInt(-0, 10) // 0
parseInt('-0', 10) // -0
parseInt()
可以用于字符串。在一个数字上运行 parseInt()
会将它转换为一个字符串。
(-0).toString()
的结果是 0
。
parseInt
的第一个参数根据ECMA 5.1规范被转换为字符串。
1. Let inputString be ToString(string).
而ToString
将返回'0'
,即使输入是+0
或-0
。
这就是你遇到这种情况的原因。2. If m is +0 or −0, return the String "0".
5 * -0
是-0
,而5 * 0
是0
。 - Marc BNode v0.11.13-pre
,我能够重现这个问题。 - thefourtheye