【JavaScript基础整理】Undefined 和 Null

115 阅读1分钟

Undefined 类型

只有一个值undefined未定义。

通过 var、let、const 声明的变量,但没有初始化赋值时,变量为 undefined 。

var a = undefined; 和 var a; 等同

通过赋值为 undefined 的变量和未定义的变量还是有区别的:

  • 未定义的变量使用会报错 ReferenceError: xxx is not defined
  • undefined 的变量,会输出'undefined'
typeof undefined    // 'undefined'

总结:声明未赋值的变量是 undefined ,不声明直接使用会报错

Null 类型

只有一个值null空值,变量有值,值为空对象指针。

typeof null    // 'object'

Undefined 和 Null 的关系

undefined 是由 null 派生出来的,所有他俩是表面兄弟,看着相等 实际上不等

undefined == null   // true
undefined === null    // false  

在变量计算中 null 会转换为 0 , 而 undefined 则转换为 NaN

1 + null;   // 1;
1 + undefined;    // NaN

用法

  • null 表示空值,及声明变量后,但是未给变量赋值。

  • undefined 表示未定义,及不存在在变量

var i;
console.log(i);    // null

var obj = {};
console.log(obj.p);    // undefined

function f(x) {
    return x;
}
f();    // undefined