一、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 是指变量声明了,但是没有赋值