null和undefined的区别

来源:互联网 发布:买了域名怎么解析 编辑:程序博客网 时间:2024/05/16 18:53

首先,两种都是一种数据类型。
在ECMAScript中有5种简单的数据类型(也称为基础数据类型):
undefined,null,boolean,number,string。一种复杂数据类型:object。(undefined容易写错成underfine!)
检测数据类型的操作符为typeof。注意typeof是操作符不是函数。
那么typeof有几种返回值了。如:undefined,null,boolean,number,string,object,function。其中如果检测的值是对象或者null(null表示一个空对象的指针),那么返回的值都是object对象。

undefined的用法:
1. 变量声明后未赋值
2. 调用函数时,该传递的参数未提供
3. 在对象里,未赋值的属性
4. 函数没有返回值时

var a;console.log(typeof a) //undefined;function a(x){alert(x)};a(); //undefined;var a = new Object();a.name  //undefined;var a=function();a //undefined

null的用法:
作为函数的参数,表示该函数的参数不是对象;
作为对象原型链的终点。

undefined的值只要一个undefined,当申明的变量未被初始化时,该变量默认为undefined;
null类型的值也只有一个null,表示尚为存在过的对象,常用来表示函数要返回一个不存在的对象。比如:检测一个一个不存在的DOM对象的类型。

阮一峰老师的日志上有几条经典评论特点抄下来备用理解:
null表示“没有对象,即该处不应该有值;
undefined表示“缺少值”,就是此处有一个值,但是没有定义

null表示被定义了,定义为空值;
undefined表示根本不存在定义;
所以设置一个值未null时合理的,设置一个值未undefined是不合理的。
如:obj.value=null是合理的。

0 0
原创粉丝点击