发布时间:2026/7/7 5:35:28
Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 断是否为数字(不够完美)function isNumber(value) { return typeof value number !isNaN(value); } // 测试 isNumber(123); // true isNumber(0); // true isNumber(NaN); // false NaN 被排除 isNumber(Infinity); // true 无穷大算数字这里判断出错了 isNumber(123); // false判断是否为数字function isNumber(value) { return typeof value number Number.isFinite(value); }这个办法虽然好但有点累赘了。因为你不清楚Number.isFinite的含义。Number.isFiniteNumber.isFinite(value) 是 ES6 引入的静态方法只有当 value 的类型为 number且该数字不是 NaN也不是 Infinity 或 -Infinity 时才返回 true。Number.isFinite(): 不会类型强制转换isFinite()会类型强制转换。isFinite先将value强制转换为数字number且该数字不是 NaN也不是 Infinity 或 -Infinity 时才返回 true。isFinite()和Number.isFinite()的区别isFinite()会进行强制类型转换而Number.isFinite()不会进行类型转换。Number.isFinite()和isFinite()的详细示例对比// ✅ 对于真正的有限数字两者返回一致 Number.isFinite(123); // true isFinite(123); // true // 对于非有限数字NaN / Infinity Number.isFinite(NaN); // false isFinite(NaN); // false Number.isFinite(Infinity); // false isFinite(Infinity); // false Number.isFinite(undefined); // false isFinite(undefined); // false 强制转化为数字,undefined - NaN Number.isFinite(abc); // false isFinite(abc); // false 强制转化为数字,abc - NaN // ⚠️ 对于非数字类型,开始出现巨大分歧 Number.isFinite(123); // false 因为类型是 string isFinite(123); // true 会进行强制转换,123 -- 123 // ⚠️ 对于,开始出现巨大分歧 Number.isFinite(); // false isFinite(); // true 会进行强制转换 -- 0 // ⚠️ 对于true,开始出现巨大分歧 Number.isFinite(true); // false isFinite(true); // true 会进行强制转换,true - 1 // ⚠️ 对于null,开始出现巨大分歧 Number.isFinite(null); // false isFinite(null); // true 会进行强制转换,null - 0 // ⚠️ 对于[],开始出现巨大分歧 Number.isFinite([]); // false isFinite([]); // true 强制转化为数字,[] - - 0 // ⚠️ 对于数字类型的数组,开始出现巨大分歧 Number.isFinite([5]); // false isFinite([5]); // true [5] - 5 - 5有限什么推荐使用 Number.isFinite更安全避免因隐式转换导致的逻辑漏洞。兼容性ES6出来的主流浏览器支持但是IE不支持更加简洁判断是否是数字的办法(不支持IE)看了上面的讲解判断数字的最佳办法是这个const isNumber Number.isFinite(value)兼容IE判断数字的方法function isNumber(value) { return typeof value number isFinite(value); } console.log(isNumber(Infinity)); // false console.log(isNumber(NaN)); // false console.log(isNumber(1234)); // falseisFinite() IE 兼容性isNaN(value)先将参数 value 强制转换为数字(调用的是ToNumber),再判断转换后的结果是否为 NaN。isNaN(hello) → true hello强制转化为数字NaN,返回true。 isNaN(123abc); → true Number(123abc) NaN isNaN(undefined) → true‌‌ (强制转化为数字NaN因为Number(undefined)是NaN。所以返回true) isNaN({}); → true Number({}) NaN isNaN(123) → false 123 不是NaN返回false isNaN(123) → false 强制转化为数字123123不是NaN返回false。 isNaN(null) → false 强制转化为数字0,因为Number(null)是0。返回false。‌‌ isNaN(); → false 强制转化为数字0,因为Number()是0返回false isNaN( ); → false 强制转化为数字0,因为Number( )是0,返回false isNaN(false); → false Number(false),强制转化为数字0 isNaN([]); → false Number([]),强制转化为数字0Number.isNaN(value)不会对传入的参数value做类型转换。它只在 value 严格等于 NaN 时返回 true其他所有情况都返回 false。Number.isNaN() 和 isNaN()的区别Number.isNaN()不会对传入的参数做类型转换。isNaN()会对传入的参数做类型转换(强制转换为数字)。// 典型的陷阱对比 Number.isNaN(abc); // false 不会转换直接判定不是 NaN返回false isNaN(abc); // true 强制转化为数字类型NaNNumber(abc) NaN 返回true Number.isNaN(undefined); // false 不会转换直接判定不是 NaN返回false isNaN(undefined); // true强制转化为数字类型NaNNumber(undefined) NaN 返回truenumber()几个常见的值转化Number(hello) → NaN Number(123abc) → NaN Number(undefined) → NaN Number({}) → NaN Number(null); → 0 Number(); → 0 Number( ) → 0 Number(false); → 0 Number(true); → 1 Number([]); → 0 Number([5]); → 5 Number([5, 6]); → NaN

相关新闻

2026/7/7 5:35:28

药食同源展-2026厦门药食同源功能性食品展览会【官网】

2026厦门国际药食同源功能性食品大会暨博览会 时间:2026年11月05-07日 地址:厦门国际博览中心引领大健康与食品产业融合创新的风向标——2026药食同源功能性食品大会暨博览会将于2026年11月05至07日,在美丽的海滨之城厦门,依托现代…

2026/7/7 5:35:28

LTC6904与PIC18LF46K22协同设计实现高精度方波脉冲生成

1. LTC6904与PIC18LF46K22的硬件协同设计1.1 芯片选型依据与技术特性分析在精确方波脉冲生成系统中,LTC6904和PIC18LF46K22的组合堪称黄金搭档。LTC6904是Linear Technology(现属ADI)推出的精密可编程振荡器,具有0.1Hz至20MHz的频…

2026/7/7 6:35:28

支付安全基石:TR31与TR34标准的核心原理、应用与实战避坑指南

1. 项目概述:TR31与TR34标准在支付安全中的核心地位在支付行业摸爬滚打十几年,我处理过无数次密钥交换、加密机对接和合规审计。每当提到“安全加密的高效解决方案”,尤其是在金融支付领域,TR31和TR34这两个标准是无法绕开的基石。…

2026/7/7 6:35:28

PyTorch 2.12 nn.Conv2d groups 参数排错:3个常见错误与权重形状验证

PyTorch 2.12 nn.Conv2d groups 参数排错指南:3个典型错误与权重形状验证实战当你尝试在PyTorch中实现分组卷积时,groups参数就像一位性格古怪的实验室助手——它能在特定条件下大幅提升模型效率,但稍有不慎就会抛出令人费解的RuntimeError。…

2026/7/7 6:35:28

Minimax Hub实战:从Claude Code集成到画布编排的AI工作流搭建

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际 AI 应用开发中,我们常常面临一个选择:是使用单一功能的 AI 工具,还是寻找一个能够整合多种…

2026/7/7 6:35:28

3分钟制作USB启动盘:Rufus极速格式化工具全攻略

3分钟制作USB启动盘:Rufus极速格式化工具全攻略 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus Rufus是一款可靠的开源USB格式化工具,专门用于快速创建操作系统安装盘、系…

2026/7/7 6:35:28

Hermes Agent网关:多智能体协同的运行时中枢与生产落地指南

1. Hermes Agent 是什么?它解决的不是“部署问题”,而是“智能体协同落地难”这个真痛点 Hermes Agent 不是又一个披着 AI 外衣的 CLI 工具,也不是 Jenkins 或 Ansible 的平替。如果你把它当成“另一个自动化脚本执行器”,那从第…

2026/7/7 5:35:28

FPC/PCB/Rigid-Flex 3类电路板选型指南:5个维度对比与典型应用场景

FPC/PCB/Rigid-Flex 3类电路板选型指南:5个维度对比与典型应用场景在电子产品的设计过程中,电路板的选择往往决定了产品的性能、可靠性和成本。面对刚性PCB、柔性FPC和软硬结合板这三种主流电路板类型,工程师们常常陷入选择困境。本文将从一个…

2026/7/7 1:15:40

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/7 1:17:48

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/7 0:35:26

STM32L081CB驱动WS2812 LED灯带的实战指南

1. WS2812与STM32L081CB的梦幻组合第一次接触WS2812 LED灯带时,我被它的神奇特性震撼到了——仅用一根数据线就能控制数百个独立RGB LED。而当我将其与STM32L081CB这款低功耗微控制器结合时,发现这个组合简直是创客项目的黄金搭档。WS2812(又…

2026/7/7 0:35:26

Service Mesh 超时重试:救服务,也可能放大故障

Service Mesh 超时重试:救服务,也可能放大故障 一、重试不是免费的稳定性 Service Mesh 让超时、重试、熔断、限流变成配置项,看起来很优雅。但重试不是免费的稳定性。一次请求失败后自动重试,短期可能救回偶发错误;如…

2026/7/7 4:23:48

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…