我们知道,当你直接打印一个未在全局环境下声明的变量时候,控制台会报引用错误,而你使用var关键字声明时候,再去打印,值是undefined,这是为什么呢?
console.log(a);//Uncaught ReferenceError: a is not defined
var a;
console.log(a);//undefined
我们都知道JavaScript内部存在预编译过程,对于未被赋值的变量会先附上undefined,如果后面有实际值再进行替换,所以第一行代码变量a虽然未被声明,其实a是有值的ÿ