当前位置: 代码迷 >> Web前端 >> Null跟Undefined的区别
  详细解决方案

Null跟Undefined的区别

热度:322   发布时间:2012-06-29 15:48:46.0
Null和Undefined的区别

? ? ? 关于Null和Undefined的区别,我做了一下测试,对于他们的区别,有点难说,但是大概可以用以下语句来描述一下,如果大家有更好的描述或者对于我的说法有所异议,希望大家能够留言,说出你们的意见,给与我指点,我将感激不尽。好了,多余的话我不说了,转入正题。

关于NULL:它意味着没有值,在很多情况下我们可以指定null值,以指示某个属性或者变量尚未赋值。例如以下情况我们可以指定null值:

1、变量存在,但是不需要定义值;

?

var number = null;

?

?

2、变量存在,但不再包含值;

?

var number = 1;
alert(number);
number = null;  //不再包含值
?

?

3、作为函数的返回值,标识函数没有可以返回的值;

?

function test(){
     return null;
}
?

?

4、作为调用函数或方法的参数,标识省略一个参数;

?

function testA(){
   var a  = 10, b = 20;
    test1(a, b, null);
}

function test1(a1, b1, c1){
    return null;
}
?

?

5、作为动态对象的属性值,当尚未初始化时,其值就是null;

?

var info = new Object();
info.message;
alert(info.message == null); //true
?

?

?

? ? ? ? 关于Undefined,它常用于尚未初始化的变量或未初始化的动态对象属性的特殊值

?

var firstNumber;//尚未初始化的变量
var lastNumber;
alert(firstNumber);//undefined
 var user = new Object();
alert(user.sex);//未初始化的动态对象属性的特殊值
?

?

?

而且Undefined用于不同的类型转换函数时,结果也不一样。例如:

1、String返回的值是Undefined(Undefined转换为字符串)

2、Number返回的值是NAN(NaN,是Not a Number的缩写)

3、Object返回的值为新的Object类型。

4、向类型变量赋予值undefined时,该值将转换为该数据类型的默认值。

  相关解决方案