JavaScript 有个比较困惑的地方 help

function a() {
    console.log('1');
  }
  var a = undefined;
  console.log(a);
// 结果是 undefined



function a() {
    console.log('1');
  }
  var a;
  console.log(a);

// 结果是个函数 有什么区别吗 

知道是变量提升方面的问题 也大概知道函数提升的优先度大于变量的提升

// 第一段相当于
var a 
a = function () {
    console.log('1');
  }
a = undefined;
  console.log(a);
// 结果是 undefined
 
 
 第二段相当于
 var a;
a = function () {
    console.log('1');
  }
  console.log(a);
 
// 结果是函数

既然你知道 还迷惑啥呀