1.Undefined类型的基本概念
Undefined类型的值,只有一个:undefined。
var message1;
alert(message1 === undefined); // true
var message2 = undefined;
alert(message2 === undefined); //true
var声明的变量如果没有初始化,那么该变量的值就是undefined。
2.字面值undefined的来源
ECMA-262第3版之前的版本中并没有规定这个值。第3版引入这个值是为了正式区分空对象指针与未经初始化的变量。
最佳实践:对象需要显示初始化成null值。
3.undefined和undeclared的区别
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”更合适。