共计 722 个字符,预计需要花费 2 分钟才能阅读完成。
前几篇已经了解了 js 中的数组、字符串和数字,js 中还有一些比较特殊的值,比如 Nan、null 等,这些东西比较琐碎,但还是有必要了解一下下的啦。
一、null 有次提到过 undefined 和 undeclared,前者表示已声明但未赋值,后者表示未声明,两者常用来表示空值。null 也表示空值,但它的意思是曾赋过值,但目前没有值。
二、NaNNaN 用英语来解释就是‘not a number’,可以将它理解为‘无效值’,但是你会发现有个有趣的点,用 typeof 看看它的数值类型,如下:
typeof NaN; // 结果为 “number”
可能你会说英文解释不是说‘not a number’么,其实这两者都没错,只是这个英文名字容易引起误解而已啦,知道 NaN 的类型还是‘number’就好。NaN 还有一个特殊点,它和自身不相等,是唯一一个非自反的值(什么叫自反,x === x 不成立,什么叫非自反,x !== x 成立),那要如何判断它是否是 NaN 呢,如下:
NaN === NaN; // false
isNaN(NaN); // true
isNaN(‘string’); // true 这又是为什么呢,因为 isNaN(),它参数为 NaN,或不是数字,就会返回 true
isNaN(”); // false 又一个有趣的结果,如果字符串为空,或数组为空,返回的却是 false
let a = NaN;
a !== NaN; // 所以推荐这种方式来验证是否是 NaN
typeof a === ‘number’ && isNaN(a); // 或是用这种方式进行验证
js 中的零值有两个,一个是 0(或是 +0),另一个是 -0,会有这种情况,是为了防止符号位丢失,具体的我也不太清楚,平时没怎么用到,就没怎么深究,待以后再细细考究。此篇就此结束。