quitar - nan javascript parseint
ESLint Uso inesperado de isNaN (3)
Como
sugiere
la
documentación
, use
Number.isNaN
.
const isNumber = value => !Number.isNaN(parseFloat(value));
Citando la documentación de Airbnb:
¿Por qué? El isNaN global coacciona los no números a números, devolviéndose verdadero para todo lo que coacciona a NaN. Si se desea este comportamiento, explíquelo.
// bad
isNaN(''1.2''); // false
isNaN(''1.2.3''); // true
// good
Number.isNaN(''1.2.3''); // false
Number.isNaN(Number(''1.2.3'')); // true
Estoy tratando de usar la función global
isNaN
dentro de una función de flecha en un módulo Node.js pero recibo este error:
[eslint] Unexpected use of ''isNaN''. (no-restricted-globals)
Este es mi código:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
¿Alguna idea de lo que estoy haciendo mal?
PD: estoy usando la guía de estilo AirBnB.
En mi caso, quería tratar 5 (entero), 5.4 (decimal), ''5'', ''5.4'' como números, pero nada más, por ejemplo.
Si tiene los requisitos similares, a continuación puede funcionar mejor:
const isNum = num => /^/d+$/.test(num) || /^/d+/./d+$/.test(num);
//Check your variable if it is a number.
let myNum = 5;
console.log(isNum(myNum))
Para incluir números negativos:
const isNum = num => /^-?/d+$/.test(num) || /^-?/d+/./d+$/.test(num);
Esto eliminará su problema de uso global de isNaN también. Si convierte la función isNum en una función ES5 normal, también funcionará en el navegador IE.
Para su información, esto no funcionará para IE. Verifique here compatibilidad del navegador.