typeof 是运算符,注意不是函数,是运算符,其作用,是考察变量究竟是什么类型。或曰,是变量是否定义或是否初始化的照妖镜。返回值是字符串。

undefined 表示一个对象没有被定义或者没有被初始化。

null 表示一个尚未存在的对象的占位符。


测试一,变量没有定义的时候,只能使用 typeof

    <input type="button" id="btnTest" onclick="Test()" value="测试" />
<script type="text/javascript">
function Test() {
alert(i == null); //报错
alert(i == undefined); //报错
alert(typeof i == "undefined"); //true
}
</script>


测试二,变量有定义,但未初始化,typeof,undefined,null都可以使用 

   <script type="text/javascript">
function Test() {
var i;
alert(i == null); //true
alert(i == undefined); //true
alert(typeof i == "undefined"); //true
i = 0;
alert(i == null); //false
alert(i == undefined); //false
alert(typeof i == "undefined"); //false
}
</script>


测试三,函数参数跟变量类似

1、没有参数

    <input type="button" id="btnTest" onclick="Test()" value="测试" />
<script type="text/javascript">
function Test(i) {
alert(i == null); //true
alert(i == undefined); //true
alert(typeof i == "undefined"); //true
}
</script>


2、有参数

    <input type="button" id="btnTest" onclick="Test(0)" value="测试" />
<script type="text/javascript">
function Test(i) {
alert(i == null); //false
alert(i == undefined); //false
alert(typeof i == "undefined"); //false
}
</script>