我一直有这个问题:
当我不介意确切的浮点数时
哪个是首选?
parseFloat
someValue = parseFloat(el.outerWidth())+parseFloat(ele2.css("marginRight")),
解析整数
someValue = parseInt(el.outerWidth(), 10)+parseInt(ele2.css("marginRight"), 10),
哪种方法更适合 JS 引擎?
我一直有这个问题:
当我不介意确切的浮点数时
哪个是首选?
someValue = parseFloat(el.outerWidth())+parseFloat(ele2.css("marginRight")),
someValue = parseInt(el.outerWidth(), 10)+parseInt(ele2.css("marginRight"), 10),
哪种方法更适合 JS 引擎?
它真的和它一样长。 parseFloat
在这里毫无意义,因为这些值将始终是整数。我宁愿节省字节并使用一元运算符+
:
someValue = (+el.outerWidth())+(+ele2.css("marginRight"));
当您这样做时:el.outerWidth()
jQuery 已经在返回整数,请参阅文档以了解返回类型。所以在这种情况下,根本不需要解析宽度。
应该注意的是outerWidth(bool)
,如果你想要左右边距,还有另一个重载包括边距,如果是这种情况,你可以这样做:
someValue = el.outerWidth(true);
最好的解决方案当然是 Andy E 的解决方案,但要回答你的问题:我认为parseFloat
如果你的数字没有浮点数是没有意义的,所以我会使用parseInt
.
变量的大小是这些性能比较中的一个重要因素,但int
它float
占用了相同的内存空间(4 个字节),所以它并不重要。此外,parseFloat
似乎比parseInt
.