Я пытаюсь использовать isNaN
глобальную функцию внутри функции стрелки в модуле Node.js, но я получаю эту ошибку:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
Это мой код:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
Есть идеи, что я делаю не так?
PS: я использую руководство по стилю AirBnB.
javascript
eslint
Элиас Гарсия
источник
источник
isNaN
иNumber.isNaN
это не те же функции. НапримерisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
в примере выше.typeof
проверку.Number.isNaN(+'1.2.3')
что является дополнительным,+
если вы используетеNumber.isNaN
К вашему сведению, это не будет работать для IE. Проверьте здесь на совместимость браузера.
источник
@ Энди Гаскелл
isNumber('1.2.3')
вернетсяtrue
, вы можете изменить свой ответ и использоватьNumber()
вместоparseFloat()
источник
В моем случае я хотел рассматривать 5 (целое число), 5,4 (десятичное число), «5», «5,4» как числа, но ничего больше, например.
Если у вас есть аналогичные требования, ниже может работать лучше:
Чтобы включить отрицательные числа:
Это также устранит проблему глобального использования isNaN. Если вы преобразуете функцию isNum в обычную функцию ES5, она будет работать и в браузере IE.
источник
Для меня это работало нормально и не было никаких проблем с ESlint
window.isNaN()
источник
Number.isNaN('abc')
естьfalse
. ИisNaN('abc')
этоtrue
window.isNan()
против другого конфига AirBnb (правило eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
из-за этой проблемы