1.undefined
undefined只有一个值,即undefined,当声明的变量未初始化时,该变量的值就是undefined
var oTemp;
alert(oTemp==undefined)//true
还可以用typeof运算符,打印出该变量的值undefined
alert(typeof oTemp);//undefined
undefined并不等于未定义的值,只是没有初始化,但是typeof不区分这两种值,如下面的程序
var oTemp1;
alert(oTemp1);//打印出 undefined
alert(oTemp2);//打印出 undefined
尽管只有oTemp2是未定义的,上面两个都是输出undefined,如果直接对oTemp2进行操作,就会出错,如:alert(oTemp2==undefined);当函数没有明确返回值的时候,他返回的也是undefined
2.null
null也只有一个值,null。值undefined实际上是从null派生来的,ECMAScript把他们定义为相等的,alert(null==undefined);//true 虽然他们是相等的,但是表示的意思不同,undefined代表变量未被初始化,null则代表对象尚未存在(注:typeof null返回的是object)