Является ли переменная числом? О проверке..
Очередной раз попалась проверка, которая возвращает факт, является ли переменная числом.
Вот её код: function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n) } Возник вопрос. Почему используется именно функция parseFloat(n)? Есть же parseInt(). Я не в курсах, какие у них реализации, но думаю, что последний вариант будет работать быстрее т.к. не проверяется десятичная часть числа.. И вообще, на самом деле до сих пор не придумали никаких других средств для этой проверки? |
hoz,
если у числа будет дробная часть, parseFloat будет в разы быстрее (-1 операция) если число целое оба метода по скорости примерно равны. В данной задаче проверяется объект со свойствами применимыми к узлу ДОМ которые как бы помимо числа могут содержать %. px итд поэтому такой подход. А по скорости все эти методы сильно уступают неявному преобразованию console.log(+'5')но если в стоке будет что то кроме чисел и десятичной точки, вернется NaN. |
есть отличный сервис в котором можно погонять код на скорость если интересно
https://jsperf.com/ |
Часовой пояс GMT +3, время: 14:46. |