初学javascript时对undefined类型视的意义和使用往往不太 理解,总结如下,以备查阅。
Undefined是javascript中一个比较特殊的类型,Undefined类型只有一个值就是undefined.
1. 当声明一个变量但却没有赋值时,这个变量就被默认赋值为undefined.
var
oTemp;
alert(oTemp);
//
undefined
alert(
typeof
oTemp);
//
undefined
2. 一个值为undefined的变量和没有定义的变量是不同的
alert(oTemp1);
//
出错,提示oTemp1未定义
alert(oTemp1
==
undefined);
//
出错,提示oTemp1未定义
但是typeof运算符却不区分这种区别:
var
oTemp;
alert(
typeof
oTemp);
//
undefined
alert(
typeof
oTemp1);
//
undefined
3. 如果一个函数没有显式返回一个值,那么返回值将是undefined
function
test()
...
{}
alert(test());
//
undefined
alert(test()
==
undefined);
//
true
4. Null类型和Undefined类型的区别
(1) Null类型实际上是Undefined类型的派生类型,所以javascript将这两种类型视为等值。
alert(undefined
==
null
);
//
true
(2) 这两种类型的意义实际上是不同的
-- undefined:变量声明但没有初始化时的值
-- null:表示一个不存在的对象(Object)
5. 可以用if(!oTemp)来判断一个变量的值是否为undefined或null
var
oTemp;
//
var oTemp = null;
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
if
(
!
oTemp)
...
{
alert(1);
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
}
else
...
{
alert(2);
}