我是瘦子

每日一题(2019-07-18)

第 0001 题:请写出如下代码的打印结果

1
2
3
4
5
6
7
8
9
var name = 'Tom';
(function() {
if (typeof name == 'undefined') {
var name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
}
})();

公司:京东

【答案】:Goodbye Jack
【解析】:var 关键字有变量提升,它定义的变量会提升到函数的顶部。题目中立即执行函数的中的变量 name 的定义被提升到了顶部,并在初始化赋值之前是 undefined,所以 typeof name == 'undefined