在js中,我声明1个变量没赋值.那么对象的值是undefined.

那么一个未声明的变量,值为什么也是undefined?不是null?
例如
var q;
document.write(typeof(q)); //这里应该是undefined.
document.write(typeof(t)); //那么这里的t为什么也是undefined? 不存在的对象t不应该是null嘛?

typeof在两种情况下会返回"undefined":一个变量没有被声明的时候,和一个变量的值是undefined的时候。typeof(q)是undefined是因为q的值是undefined,typeof(t)是undefined是因为t根本没有声明(也没有值)。追问

那返回null应该是在什么情况下?对象和变量是2个不同的东西嘛?

追答

typeof 返回值有六种可能: "number" ,"string", "boolean" ,"object" ,"function" 和 "undefined",根本就没有null

追问

放着以后慢慢理解吧.我记得返回object有3种情况,null object array好像..
哈哈,我是有兴趣才看的书.可能问的问题比较幼稚没逻辑

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-18
换个通俗易懂的方式解释 undefined 吧。它表示变量【尚未用单等号进行赋值】(这句话读三遍)。

不知道题主从哪本书上或者某个网站上看到的什么“不存在的对象应该是null”之类的谬论,如果是教材,那么我建议换一本书吧,太误人子弟了。追问

可能是我理解错误吧. 书上说:当一个对象不存在时,将返回空型.
我把对象和变量混淆了.