特别数值

前几篇已相识了js中的数组、字符串和数字,js中另有一些比较特别的值,比方Nan、null等,这些东西比较噜苏,但照样有必要相识一下下的啦。

一、null
有次提到过undefined和undeclared,前者示意已声明但未赋值,后者示意未声明,二者常用来示意空值。
null也示意空值,但它的意义是曾赋过值,但现在没有值。

二、NaN
NaN用英语来诠释就是‘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,会有这类状况,是为了防备标记位丧失,详细的我也不太清晰,日常平凡没怎么用到,就没怎么穷究,待今后再细细精细精美。
此篇就此结束。

    原文作者:喆喆
    原文地址: https://segmentfault.com/a/1190000017994548
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞