题目
console.log(a, globalName);//undefined undefined,它们的类型也是undefined
var a;
var globalName= "Javascript";
function Hello(){
if(typeof globalName === 'undefined'){
var globalName= "ES6";
console.log("hello ",globalName);//hello ES6
}
else
console.log("hello ",globalName);
}
Hello();
console.log(globalName);//Javascipt
运行结果
代码分析
这道题要问的实际上就是变量提升这个知识点,var声明的变量会被自动提升到当前作用域的顶部(如果在函数中,那么提升到当前函数的顶部,如果是全局,那么提升至全变的顶部,在给变量赋值之前,变量的值为undefined),所以打印结果如上所示。