alert(typeof a=="undefined")
解决方案 »
- 急等
- 关于javascript动态创建的问题
- 使用框架开发的优势和劣势
- 求救!!页面在IE,firefox浏览器下不兼容?????
- 这个循环为什么会让IE不响应,但好象不是死循环?请大家帮忙看看
- 求DHTML方面比较权威的书名,电子书也行
- 菜鸟级的问题,关于动态传递表单对象的问题
- Form提交,打开一个titlebar=no,toolbar=no...的窗体应该怎么写?
- 关于 OnSubmit,求救,先谢了!
- 两个按钮控制两个块的显隐,怎么打开页面时两个块就是隐藏的啊
- javascript中 <!--的作用---是不是可以在版本不对的代码无法执行的情况下忽略标记的代码?
- ☆★☆★像豆瓣网上传动态头像后却变成了静态不会动的,请问是怎么实现的呢?
alert(typeof a=="undefined") // true
var a = document.getElementById("haha");
alert(a == undefined); // true
alert(typeof a); // object
var a = document.getElementById("haha");
alert(a == undefined); // true
alert(null == undefined); //同上,原因它们可以互转换成===就不会有问题了
alert(typeof a);// object 因为null是object类型的。所以。
</script>
请参阅
运算符优先级 | 运算符总结
要求
版本 1
返回一个用来表示表达式的数据类型的字符串。typeof[()expression[]] ;
expression 参数是需要查找类型信息的任意表达式。说明
typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。typeof 语法中的圆括号是可选项。返回一个用来表示表达式的数据类型的字符串。
所以变量一般都会赋初值为null。今天正好讨论一下!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>js.undefined.analysis.html</title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="[email protected]" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
</head>
<body>
<script type="text/javascript">
<!--
var br = "<br />";
var output = "";var a = document.getElementById("haha");
output += "a: " + a + br;
output += "typeof a: " + typeof(a) + br;
output += "a==undefined: " + (a==undefined) + br;
output += "a===undefined: " + (a===undefined) + br;output += br;//output += "b: " + b + br; // 异常!
output += "typeof(b): " + typeof(b) + br;
output += "typeof(typeof(b)): " + typeof(typeof(b)) + br;
//output += "b==undefined: " + (b==undefined) + br; // 异常!
output += "typeof(b)==\"undefined\": " + (typeof(b)=="undefined") + br;
//output += "b===undefined: " + (b===undefined) + br; // 异常
output += "typeof(b)===\"undefined\": " + (typeof(b)==="undefined") + br;document.write(output);/* 输出:a: null
typeof a: object
a==undefined: true
a===undefined: falsetypeof(b): undefined
typeof(typeof(b)): string
typeof(b)=="undefined": true
typeof(b)==="undefined": true */
//-->
</script>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>js.undefined.analysis.html</title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="[email protected]" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
</head>
<body>
<script type="text/javascript">
<!--
var br = "<br />";
var output = "";var a = document.getElementById("haha");
output += "a: " + a + br;
output += "typeof a: " + typeof(a) + br;
output += "a==undefined: " + (a==undefined) + br;
output += "a===undefined: " + (a===undefined) + br;output += br;var b;
output += "b: " + b + br; // 不写 var b 就会抛异常!
output += "typeof(b): " + typeof(b) + br;
output += "typeof(typeof(b)): " + typeof(typeof(b)) + br;
output += "b==undefined: " + (b==undefined) + br; // 不写 var b 就会抛异常!
output += "typeof(b)==\"undefined\": " + (typeof(b)=="undefined") + br;
output += "b===undefined: " + (b===undefined) + br; // 不写 var b 就会抛异常!
output += "typeof(b)===\"undefined\": " + (typeof(b)==="undefined") + br;document.write(output);/* 输出:a: null
typeof a: object
a==undefined: true
a===undefined: falseb: undefined
typeof(b): undefined
typeof(typeof(b)): string
b==undefined: true
typeof(b)=="undefined": true
b===undefined: true
typeof(b)==="undefined": true */
//-->
</script>
</body>
</html>
当声明的变量未初始化时,该变量的默认值是undefined。当声明了变量,而没有初始值时,该变量将被赋予值undefined,即Undefined类型的字面量。
注意是undefined值,不是"undefined"字符串
例如:
var oTemp;
oTemp变量声明之后没有赋予初始值,这时将被赋予值undefined
测试:
var oTemp;
alert(oTemp == undefined);//将会返回true
alert(typeof oTemp);//将显示undefined注意:值undefined并不同于未定义的值。但是,typeof运算符并不真正区分这两种值。
例如:
var oTemp;
alert(typeof oTemp);
alert(typeof oTemp2);
都将返回undefined,虽然oTemp2并未声明,由于ECMAScript的特性会把oTemp2自动声明为一个全局变量,再进行typeof运算如果直接对oTemp2使用其他运算符,将引起错误,因为那些运算符只能用于已定义的变量
例如:
alert(oTemp2 == undefined);
这里将会出错当函数无明确返回值时,返回的也是值undefined
例如:
function a(){}
alert(typeof a());
3 Null类型Null类型只有一个值,即Null
值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为相等的。
例如:
alert(undefined == null);//将返回true尽管这两个值相等,但它们的含义不同。
undefined是声明了变量但未对其初始化时赋予该变量的值
null用于表示尚未存在的对象
如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。
alert(typeof a=="undefined")
</script>