<html>
<head>
<title>JS</title>
<script type="text/javascript">
//这一讲我们来看看Undefined类型有哪些比较特别或值得注意的地方。
function test(){
undefined==undefined;
alert(typeof undefined);
var undefined="123";
alert(typeof undefined);
undefined=123;
alert(typeof undefined);
undefined=true;
alert(typeof undefined);
/*
结果依次是undefined,string,number,boolean
undefined赋值后可以当一个普通变量来用
*/
}
function test1()
{
alert(undefined==undefined);
alert(NaN==NaN);
/*
undefined与自身相等,不像NaN一样自己不等于自己
*/
}
function testFun()
{
/*
空函数,什么都不做
*/
}
function test2()
{
alert(typeof testFun);
alert(typeof testFun());
/*
结果分别是 function,undefined
第一个是函数的引用
第二个直接调用函数
如果一个函数没有明确返回值时那么它的返回值就是undefined
*/
}
function test3()
{
alert(undefined==null);
/*
值undefined实际上是从值null派生来的,所以undefined == null
undefined 是声明了变量但是没有初始化时赋予该变量的值,
null表示尚未存在的对象
*/
}
/*
值undefined并不同于未定义的值
这句话该怎么理解呢?
*/
function test4()
{
var temp1;
alert(typeof temp1);
alert(typeof temp2);
alert(temp1+1);
alert(temp2+1);
/*
首先明确变量声明但未初始化和变量未定义(或声明)是两个不同的概念
temp1属于前者temp2属于后者,两者都被初始化为undefined
但是typeof运算符并不区分这两种值
对于未定义的变量temp2虽然他的默认初始值为undefined但是还是不能拿它来进行其它
运算。
*/
}
</script>
</head>
<body>
<input type="button" onclick="test4()" value="Click">
</body>
</html>
总结一下
以下三种情况typeof 返回类型为undefined
1. 当变量未初始化时
2. 变量未定义时
3. 函数无明确返回值时(函数没有返回值时返回的都是undefined)
undefined 并不等同于未定义的值,typeof 并不真正区分是否是未定义
分享到:
评论