定义
undefined 表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值,是数据类型。
null 表示空值,即此处的值为空,是数据类型。
NaN 是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合,数据类型为number,是数值。
使用场景
undefined和null语法差别很小。
转换数值
null 是一个表示“空”的对象,转为数值时 为 0 ;
undefined 是一个表示”此处无定义”的原始值,转为数值时为 NaN 。
其他
需传参不想传入参数时可以传入null,表示参数为空,接受异常时程序未出错,那么传入null;
未赋值的变量、未提供的参数、未赋值的属性、默认的返回值类型为undefined。
NaN运算规则
1.字符串在数学运算中出现,为NaN;
2.一些数学函数的运算结果会出现 NaN;
3.0 除以 0 也会得到 NaN ;
4.NaN 不等于任何值,包括它本身;
5.数组的 indexOf 方法内部使用的是严格相等运算符,所以该方法对 NaN 不成立;
6.NaN 和0在布尔运算时被当作 false(非Number类型当做false的还有null和undefined) ;
7.NaN 与任何数(包括它自己)的运算,得到的都是 NaN 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!