В jQuery должен ли я использовать parseFloat(el.width()) или parseInt(el.width(),10)?какой из них более предпочтителен

StackOverflow https://stackoverflow.com/questions/2426148

Вопрос

У меня всегда был этот вопрос:
Когда я не возражаю против точного плавающего числа

Какой из них предпочтительнее?

Парсефлот

    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);

Лучшим решением, конечно, является решение Энди Э, но чтобы ответить на ваш вопрос:Я думаю parseFloat бессмысленно, если ваше число не имеет плавающей запятой, поэтому я бы использовал parseInt.

Размер переменной является важным фактором при сравнении производительности, но int и float занимают одно и то же место в памяти (4 байта), так что это не имеет особого значения.Кроме того, parseFloat кажется, делает больше вычислений и анализа строк, чем parseInt.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top