先看例子: var a; a; //undefined b; //b is not defined 这样的报错会让我们认为b也是undefined 更让人抓狂的是: var a; typeof a; //undefined typeof b; //undefined 虽然两个都输出undefined,但是两个是不同的,b是一个undeclared变量,typeof b并没有报错是因为typeof有一个特殊的安全防范机制。由于比较深入,就不细讲了。。。大家有兴趣的可以去查查资料