js中的特数值-null-undefined-NaN
一、补充
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
js中的特数值-null-undefined-NaN的更多相关文章
- 在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true
Boolean 表达式 一个值为 true 或者 false 的表达式.如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则: 所有的对象都被当作 true. 当 ...
- js中字符串转换为数值的两种方法的区别
在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt() //将字符串转换为整型 parseFloat() //将字符串转换为浮点型 转换函数在 ...
- json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别
JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 在js使用中的一个函 ...
- 你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined
1 1 1 === 全相等(全部相等) == 值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console ...
- js null, undefined, NaN, ‘’, false, 0, ==, === 全验证
<html> <head> <meta charset="utf-8" /> </head> <body> <in ...
- null undefined NaN
数据类型 6大基本 Number String Boolean Undefined Null. Symbol (ES6) 3大引用类型 object array Function Regexp ...
- 判断 null undefined NaN
1.判断undefined: var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined ...
- 详细js中(function(window,document,undefined))的作用
在jquery插件中我们经常看到以下这段代码 对于很多初学者来说很难明白这表示什么,下边我将为大家介绍其相应的作用. 1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而 ...
- js中如何获取纯正的undefined?
1.为什么要获取undefined? 因为undefined在javascript中不是保留字,可以被用户当做变量来赋值,这样如果我们后期需要用到undefined来检测一个变量的话,那么检测的值就不 ...
随机推荐
- GDOI2021划水记
Day0 上午有意志行,一大早就醒了,然后走了五个小时脚痛.中午洗澡,宿舍轮流看巨人最终话然后聊了一个小时? 下午老师带着我和全爷先开溜,宿舍好像很破旧还还没得充电,领了牌牌和斐爷去吃饭. 然后六点多 ...
- 自学 Python,视频教程和代码一看就懂,动手就废,应该这么学
一.代码量太少了,看得多做得少,导致一做就错. 每一个测试工程师必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时 ...
- SVN基本配置--创建版本库(图文并茂)
SVN基本配置简 上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使 ...
- WPF进阶技巧和实战03-控件(5-列表、树、网格02)
数据模板 样式提供了基本的格式化能力,但是不管如何修改ListBoxItem,他都不能够展示功能更强大的元素组合,因为了每个ListBoxItem只支持单个绑定字段(通过DisplayMemberPa ...
- 在开源项目或项目中使用git建立fork仓库
前言: vector我们经常使用,对vector里面的基本函数构造函数.增加函数.删除函数.遍历函数我们也会用到.其中在使用遍历之后erase删除元素过程中,会出现一种删除最后一个元素破坏了迭代器的情 ...
- 活动回顾|ShardingSphere X openGauss,将会产生怎样的化学反应?
"ShardingSphere 作为 openGauss 生态的开源分布式数据库解决方案,将持续助力于 openGauss,满足千行百业广大客户分布式场景需求." 5月29日,由 ...
- React实现组件全屏化
介绍 本文基于React+antd,给大家演示一个完整的全屏demo. 起因是开发今天给我提了一个sql编辑器输入框比较小,不支持放大,不太方便.希望能够全屏显示,联想到自己以后可能也会需要,便研究并 ...
- Linux tomcat 部署war包
将打包好的 war包放在 webapps的文件夹下 在tomcat/conf 文件夹下的 server.xml 里填加 <Context path="" docBase=&q ...
- maven编码 gbk 的不可映射字符
解决这个问题的思路: 在maven的编译插件中声明正确的字符集编码编码--编译使用的字符集编码与代码文件使用的字符集编码一致!! 安装系统之后,一般中文系统默认字符集是GBK.我们安装的软件一般都继承 ...
- zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板
前言 Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下. 版本编译引导 zlib在windows上的mingw32 ...