题目
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),所以打印结果如上所示。