Undefined类型的值,只有一个:undefined。
var message1;
alert(message1 === undefined); // true
var message2 = undefined;
alert(message2 === undefined); //true
?
var声明的变量如果没有初始化,那么该变量的值就是undefined。
ECMA-262第3版之前的版本中并没有规定这个值。第3版引入这个值是为了正式区分空对象指针与未经初始化的变量。
最佳实践:对象需要显示初始化成null值。
undefined表示变量已声明,但是未初始化。
undeclared表示未声明。
var message; console.log(message); //undefined,未报错 //var age; console.log(age); //报错,ReferenceError: age is not defined typeof age; //undefined,这是一种安全机制
?
控制台上对于age的报错是有歧义的,表示age未声明,用“ReferenceError: age is not declared”更合适。
原文:http://mirroravatar.iteye.com/blog/2187942