parseint 和 minus 的区别

difference beween parseint and minus

通常当我必须解析 javascript 中的数字时,我使用类似

的代码
var x="99"
var  xnumber= x-0

而不是

var xnumber= parseInt(x)

使用这个代码有没有问题(性能上或者结构上),我想知道有没有问题

在性能方面您不会看到太大差异,但它的可读性不是很好。我倾向于认为 parseInt("4", 10) 是正确的解决方案,因为它符合您解析 javascript(即 parseFloat("4.0"))中其他值的方式,因此您可以通过坚持使用一种解析方法来保持更加一致数字。

我不相信它会表现得更好或更差。像这样的性能优化通常可以忽略不计,并且在各种平台上可能不一致。但是,使用 parseInt 的前一种方法可以让其他程序员更好地了解您的意图。除非你有充分的理由优化这个语句,并且你确定它在你的目标环境中确实运行得更快,否则建议你坚持使用更具可读性的版本(本例中为 parseInt)。

更新:我建议阅读这个关于微优化的帖子:https://softwareengineering.stackexchange.com/questions/99445/is-micro-optimisation-important-when-coding/

两种方法都应该有效,但我认为 "cleaner" 使用为此创建的函数解析任何字符串,而不是使用这个小技巧。

您也不太可能 运行 陷入转换问题,如果您使用其他语言编写代码,您通常会更好地使用开发人员打算使用的方式。许多其他语言不允许您使用 "casting"

的第一种方式

在大多数浏览器中使用 "x - 0" 方法会明显更快。

Here's a JSPerf that shows the performance difference.

您可以使用 JSPerf.com

进行自己的 A/B 性能测试

但是,您可能在某些情况下仍想使用 parseInt(),因为它更清晰一些。尽管说实话,任何有经验的 javascript 开发人员在理解更快的方法时都不会遇到任何问题。

如果代码行仅每半秒左右运行一次(或每当用户键入字母时),您可以放心地使用 parseInt。

但是,如果这段代码在 运行 几千次或更多次的循环中,您应该 绝对 使用 x - 0