javascript:void(null)是什么意思

Undefined 和 Null 是 Javascript 中两种特殊的原始数据类型(Primary Type),它们都只有一个值,分别对应 undefined 和 null
这两种不同类型的值,既有着不同的语义和场景,又表现出较为相似的行为:

undefined

undefined 的字面意思就是:未定义的值 。这个值的语义是,希望表示一个变量最原始的状态,而非人为操作的结果 。 这种原始状态会在以下 4 种场景中出现:
【1】声明了一个变量,但没有赋值
【2】访问对象上不存在的属性
【3】函数定义了形参,但没有传递实参
【4】使用 void 对表达式求值

null

null 的字面意思是:空值 。这个值的语义是,希望表示 一个对象被人为的重置为空对象,而非一个变量最原始的状态 。 在内存里的表示就是,栈中的变量没有指向堆中的内存对象,即:

javascript:void(null)是什么意思


与 null 相关的另外一个问题需要解释一下:

typeofnull== ‘object’
null 有属于自己的类型 Null,而不属于Object类型,typeof 之所以会判定为 Object 类型,是因为JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。
其实,我们可以通过另一种方法获取 null 的真实类型:Object.prototype.toString.call(null) ; // [object Null]

NaN

全称 ;Not a number, 即非数字值。是一个特殊的数值 属于number类型,该数值用于表示一个本来要返回数值的操作没有返回数值的情况。
NaN本身有两个非同寻常的特点,首先,任何设计NaN的操作都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括其本身。所以当我们像判断一个对象是不是NaN的时候,使用的是isNaN()函数.

void

void 运算符会对给定的表达式进行计算,然后返回 undefined。
通常 void 0 会用来获取 undefined。undefined 可能会被重写,但是 void 0 返回的值一定会是 undefined。