• 关于变量名提升、函数名提升

JavaScript 有三种声明函数的方法。

 1. function 命令
 2. 函数表达式
 3. Function 构造函数

var foo = function () {
  console.log("foo_1");
};

function foo() {
  console.log("foo_2");
}

foo(); // foo_1

如果声明了相同的 变量 函数 名,那谁会存活下来呢?

结果是使用 function 命令声明的代码块被提升到了代码最顶部(第一行)。