null undefined区别

lanweipeng
  • 46

面试官问:null和undefined有什么区别

回复
阅读 1.6k
4 个回答

先来看一下大神的文章:
undefined与null的区别 - 阮一峰的网络日志
再来看:JavaScript 数据类型

js 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空对象(Null)、未定义(Undefined)、Symbol。

Undefined

在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。

实例

var person;                  // 值是 undefined,类型是 >undefined

任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。

实例

person = undefined;          // 值是 undefined,类型是 undefined

Null

在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。

不幸的是,在 JavaScript 中,null 的数据类型是对象。

您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。

您可以通过设置值为 null 清空对象:

实例

var person = null;           // 值是 null,但是类型仍然是对象

您也可以通过设置值为 undefined 清空对象:

实例

var person = undefined;     // 值是 undefined,类型是 undefined

Undefined 与 Null 的区别

Undefined 与 null 的值相等,但类型不相等:

typeof undefined              // undefined
typeof null                   // object
null === undefined            // false
null == undefined             // true

underfinedUnderfined 类型的一个值,但是这个underfined 是一个变量,可以被修改,所以很多地方用 void 0 来获取undefined值,表达的意思是“从未赋值”“从未定义”,任何变量在赋值前是 Undefined 类型、值为 undefined
nullNull类型的一个值,是JavaSript语言的关键字,表达的意思是“定义了但是为空”。

none: 根本没有这个东西;
undefined,有这个变量,但是没有赋值

宣传栏