3

私はいつもこの質問をしていました:
正確な浮動小数点数を気にしないとき

どちらが好ましいですか?

parseFloat

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

parseInt

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

JS エンジンにとってより簡単な方法はどれですか?

4

3 に答える 3

3

最善の解決策はもちろんAndyEの解決策ですが、あなたの質問に答えるにparseFloatは、あなたの数に浮動小数点がなければ意味がないと思うので、を使用しますparseInt

変数のサイズは、これらのパフォーマンスの比較において重要な要素ですがintfloatメモリ内で同じスペース(4バイト)を使用するため、実際には重要ではありません。さらに、parseFloatよりも多くの計算と文字列解析を行うようですparseInt

于 2010-03-11T15:35:19.767 に答える
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 に答える