NaN
学习JS也有一段时间了,今天我想跟大家聊一聊关于NaN的问题,带大家,一分钟了解NaN究竟什么?
首先顾名思义,什么是NAN呢?
NaN,是Not a Number的缩写。他在JS当中表示的是存储的数据的数值类型,它不是一个具体的数值。如果说有非数值参与运算,那么他就会转化为NaN。运算结果也为NaN。因此NaN和整数,浮点数一样,也属于一种数值类型。
给大家举一个简单的例子。
var str1 = ‘北京’;
var str2 = ‘上海’;
var res1 = str1 - str2;
console.log(res1);
var res2 = 100 - str1;
console.log(res2);
这两个的运算输出结果都为NaN.
因此呢,NaN虽然不是一个具体数值,但它仍然是一种数值类型。因为这是算术运算执行的结果。执行运算时,只要是非加法的情况,有非数值参与运算 运算结果都是NaN,当是加法的时候执行字符串拼接操作。
有很多人对NaN == NaN的判断结果很不解,它的判断执行结果是false,为什么呢?
其实道理很简单,就像我刚才说的那样,NaN它只是一种数值类型,并非是一个具体的数字,整数 == 整数吗? 不等于吧。这就是一个道理。NaN只是非数字,当然这个非数字也可以是不同的嘛,就比如说狗不是人,猫也不是人,你非要说猫就等于狗,那这不就是扯呢么。因此,记住NaN永远不会等于NaN的。
朋友们,听了我的介绍是不是对NaN印象更深刻了呢?好了今天就先到这,不足之处,还望大家多多批评指点。