小编典典

ESLint 意外使用 isNaN

all

我正在尝试isNaN在 Node.js 模块的箭头函数中使用全局函数,但出现此错误:

[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)

这是我的代码:

const isNumber = value => !isNaN(parseFloat(value));

module.exports = {
  isNumber,
};

知道我在做什么错吗?

PS:我使用的是 AirBnB 风格指南。


阅读 184

收藏
2022-07-14

共1个答案

小编典典

正如文档所建议的,使用Number.isNaN.

const isNumber = value => !Number.isNaN(Number(value));

引用 Airbnb 的文档:

为什么?全局 isNaN 将非数字强制转换为数字,任何强制转换为 NaN 的都返回 true。如果需要此行为,请明确说明。

// bad
isNaN('1.2'); // false
isNaN('1.2.3'); // true

// good
Number.isNaN('1.2.3'); // false
Number.isNaN(Number('1.2.3')); // true
2022-07-14