В jQuery должен ли я использовать parseFloat(el.width()) или parseInt(el.width(),10)?какой из них более предпочтителен
-
19-09-2019 - |
Вопрос
У меня всегда был этот вопрос:
Когда я не возражаю против точного плавающего числа
Какой из них предпочтительнее?
Парсефлот
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
.