js中的特数值-null-undefined-NaN
2024-09-05 02:36:58
一、补充
1.js中的三大特殊数据:undefined、null、NaN
NaN
:非法的数值运算得到的结果特殊之处:
- 是一个数值型数据,但不是一个数字
- NaN不等于任何值,和任何数据都不相等,NaN不等于NaN
检测方法:
isNaN
(要检测的数据)- true:检测是否为NaN或是否能转为NaN
- false:检测结果不是NaN或不能转成NaN
// 计算机认为每一个NaN都是非法运算的结果,每一个NaN的来源都不一样
console.log(NaN == NaN); //false // 非法的运算会得到NaN,但不知道这个运算是否为非法运算
// js提供了一个检测是否为NaN的方法
console.log(isNaN(NaN)); //true
console.log(isNaN(123)); //false console.log(isNaN("hello")); //true
// 还会发生隐式类型的转换
// 场景:是否可以转为数值,"hello"无法转为数值,所以是非法运算结果为true console.log(isNaN("123")); //false
// 可以转为数值,数值不是NaN,所以结果为false console.log(isNaN("123hello")); //true
//是严格转换 console.log(isNaN("123.4")); //false
//可以识别小数点,可以转为数值
undefined
- 未赋值 类型是undefinednull
- 空 类型是object对象- 特殊1:undefined 和 null 在关系类型运算时,两边都被隐式类型转换成了一致的数据 0/false
- 特殊点2:undefined被转换为NaN,null被转换为0
如何判断三大特殊的值分别是谁
NaN
可以使用isNaN
判断- isNaN(要判断的值)
//隐式转换
console.log(undefined == null); //true
console.log(undefined == NaN); //false,有NaN肯定不相等
console.log(null == NaN); //false
// 三个等号必然不相等,类型肯定不相等 //强制转换
console.log(Number(undefined)); //NaN
console.log(Number(null)); //0 // 特殊点1:undefined 和 null 在关系类型运算时,两边都被隐式类型转换成了一致的数据 0/false
// 特殊点2:undefined被转换为NaN,null被转换为0 console.log(undefined == 0); //f
console.log(null == 0); //f // 如何判断是哪一个特殊的值
// 判断undefined和null:
// typeof()
//typeof undefined得到undefined
//typeof null得到object // 如何判断null和真正的对象
// 真正的对象的明显标志:任何两个对象都不相等,只要相等了,就是只有一个对象
// null是可以直接等于自己null
// console.log(null == null); //t
undefined
可以使用typeof
判断- typeof 要判断的值或变量
null
需要配合typeof
和关系运算符判断- typeof 要判断的值或变量 === "object"
- 还需要要判断的值或变量 == null
最新文章
- Backbone,Marionette,Talent学习笔记
- .NET (一)委托第一讲:什么是委托
- SEO技巧汇集
- git branch 管理常用命令
- Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架
- Wijmo金融图表系列之等量图&;成交量柱状图
- Hadoop no.1
- 如何生成a1,a2,a3,a4这样的变量名
- 升级NppAstyle中的AstyleLib为最高版本
- RHEL 6.4 64bit kettle5.01导入xlsx格式的excel时报错
- Lambda表达式图解
- 微信小程序实例教程(一)
- ASP.NET没有魔法——ASP.NET MVC 与数据库大集合
- Linux 查找文件命令 find whereis locate
- ABP实践(3)-ASP.NET Core 2.x版本(从创建实体到输出api)简单实现商品列表及增删改
- c# 匿名函数
- Android遍历API (1) 动画篇——克隆动画AnimationCloning
- java基础解析系列(二)---Integer
- U帮忙U盘启动盘制作
- .net连mysql数据库汇总