3

我一直有这个问题:
当我不介意确切的浮点数时

哪个是首选?

parseFloat

    someValue  = parseFloat(el.outerWidth())+parseFloat(ele2.css("marginRight")),

解析整数

    someValue  = parseInt(el.outerWidth(), 10)+parseInt(ele2.css("marginRight"), 10),

哪种方法更适合 JS 引擎?

4

3 回答 3

3

它真的和它一样长。 parseFloat在这里毫无意义,因为这些值将始终是整数。我宁愿节省字节并使用一元运算符+

someValue  = (+el.outerWidth())+(+ele2.css("marginRight"));
于 2010-03-11T15:28:13.917 回答
3

当您这样做时:el.outerWidth()jQuery 已经在返回整数,请参阅文档以了解返回类型。所以在这种情况下,根本不需要解析宽度。

应该注意的是outerWidth(bool),如果你想要左右边距,还有另一个重载包括边距,如果是这种情况,你可以这样做:

someValue = el.outerWidth(true);
于 2010-03-11T15:28:58.047 回答
3

最好的解决方案当然是 Andy E 的解决方案,但要回答你的问题:我认为parseFloat如果你的数字没有浮点数是没有意义的,所以我会使用parseInt.

变量的大小是这些性能比较中的一个重要因素,但intfloat占用了相同的内存空间(4 个字节),所以它并不重要。此外,parseFloat似乎比parseInt.

于 2010-03-11T15:35:19.767 回答