通常当我必须在javascript中解析数字时,我使用像
这样的代码var x="99"
var xnumber= x-0
而不是
var xnumber= parseInt(x)
使用此代码(性能或结构)是否有任何问题,我想知道是否有任何问题
答案 0 :(得分:1)
两种方式都应该有效,但在我看来,#34;更清洁"使用为此而制作的函数解析任何String,而不是使用这个小技巧。
您也不太可能遇到转换问题,如果您使用其他语言编写代码,您通常会更好地使用开发人员打算使用的方式。许多其他语言都不允许你第一次使用" cast"
答案 1 :(得分:1)
使用" x - 0"在大多数浏览器中,方法会明显加快。
Here's a JSPerf that shows the performance difference.
您可以使用JSPerf.com
进行A / B性能测试但是,可能仍然希望在某些情况下使用parseInt(),因为它更清晰一些。尽管如此,任何有经验的javascript开发人员都不会在理解更快的方式方面遇到任何麻烦。
如果代码行每半秒左右运行一次(或者每当用户输入一个字母时),你可以使用parseInt而不用担心。
但是,如果这段代码在一个运行几千次或更多次的循环中,你应该肯定使用x - 0
。
答案 2 :(得分:0)
表现明智,你不会看到很多不同,但它不是很可读。我倾向于认为parseInt("4", 10)
是正确的解决方案,因为它与您在javascript(即parseFloat("4.0")
)中解析其他值的方式一致,因此您可以通过坚持使用一种方法来保持更加一致解析数字。
答案 3 :(得分:0)
我不相信它会表现得更好或更差。像这样的性能优化通常可以忽略不计,并且可以在各种平台上不一致。但是,使用parseInt的前一种方法可以更好地了解您对其他程序员的意图。除非您有充分的理由优化此语句,并且您确信它在目标环境中运行得更快,否则建议您坚持使用更易读的版本(本例中为parseInt)。
更新:我建议阅读关于微优化的这个主题:https://softwareengineering.stackexchange.com/questions/99445/is-micro-optimisation-important-when-coding/