? ? ? 关于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时,该值将转换为该数据类型的默认值。