ESLint 意外使用 isNaN

新手上路,请多包涵

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

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

这是我的代码:

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

module.exports = {
  isNumber,
};

知道我做错了什么吗?

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

原文由 Elias Garcia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

正如 文档所建议 的那样,使用 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

原文由 Andy Gaskell 发布,翻译遵循 CC BY-SA 4.0 许可协议

仅供参考,这不适用于 IE。 在此处 查看浏览器兼容性。

原文由 thyforhtian 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏