Undefined和Null

1,070 阅读2分钟

一、Undefined 类型

1、Undefined只有一个值,即特殊的undefined

1.1、 当使用var声明变量但未对其加以初始化时,这个变量就是undefined.

var one; 声明之后默认取得undefined值
alert(one==undefined) // true
var two = undefined;
alert(two==undefined) // true

1.2 、但未声明的变量,会报错误

alert(ad) //  报错 Uncaught ReferenceError: ad is not defined

1.3、使用 typeof( ) 检测数据类型 ,无论变量是否被声明,初始化都返回值ndefined值

var one; // 声明之后取得Undefined的值
alert(typeof(one)) // undefined 
alert(typeof(two)) // undefined // two 并未声明
对未初始化和未声明的变量执行 typeof 操作符都返回了 undefined 值

二、Null类型

Null只有一个值,这个特殊值是null。它不占内存。

1、️ null 值表示一个空对象指针 ,所以使用typeof操作符检测null时返回“object”

var num = null;
alert(typeof(num)) // object

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。这样 一来,只要直接检查 null 值就可以知道相应的变量是否已经保存了一个对象的引用。

2、️undefined 值时派生自null 值

alert(null==undefined); // true

三、Undefined和Null区别

1、都代表空或者没有

  • undefined:表示使用var声明变量但未对其加以初始化时,这个变量的值就是undefined;

  • null:是一个空对象指针

2、undefined 一般都不是手动控制的 大部分是浏览器分配

var apple; // 此时浏览器自动分配其为undefined

3、null 一般都是人为手动先赋值的

var num = null; //=>后面会再进行赋值

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null,且 null 在内存中是不占位置的,多用于初始化值

undefined 和not defined 区别

⚠️ not defined 是指未声明未定义的 变量

⚠️ undefined 是指变量声明了,但是没有赋值