在Javascript中解析int的最佳方法

时间:2013-06-03 17:56:53

标签: javascript type-conversion

可以通过多种方式将字符串转换为整数,例如

  • parseInt("-1",10)
  • Math.floor("-1")
  • Number("-1")
  • "-1"|0
  • ~~"-1"

我假设第一种是规范形式,但例如使用第三个来强制整理。可能有更多方法可以做到。

使用这些中的每一个有什么区别和好处?哪个是最快的?

2 个答案:

答案 0 :(得分:9)

解析十进制int的规范方法是parseInt(str, 10)

关于其他解决方案:

  • parseInt("-1"):只有在您喜欢危险地生活时才使用它(某些浏览器认为"009"是十进制,而不是全部)
  • Math.floor("-1"):它可能是一个楼层,而不是一个int,但如果你想确定它是一个整数,这不是正确的方法
  • Number("-1"):也许您想要一个对象,这样您就可以在没有促销的情况下调用方法,并且您希望确保没有垃圾(Number('3 flowers') ==> NaN
  • "-1"|0~~"-1"以及隐式转换和二进制操作的其他组合:您喜欢代码高尔夫,并且不希望您的代码易于维护(对于那些想知道:二进制操作采用整数数字的一部分)。正如Blender在评论中指出的那样,这些解决方案不适合大(正或负)数字。

如果您不需要确保字符串只包含int,则不应使用除parseInt(str,10)之外的其他解决方案。这是最快的解决方案,更重要的是,最具可读性。如果JS引擎进行了一些优化,那么其他解决方案就没有理由比这个更快。

答案 1 :(得分:3)

一元加上怎么样?它看起来像是专门为转换类型设计的。

+"-1" // -1