var getName = function () {console.log(3)}; //[1]
function getName (){console.log(4)};//[2]
getName()//3 [3]
function getName () {console.log(4)}; //[4]
var getName = function (){console.log(3)}; //[5]
getName() //依旧是3 [6]
==>
function getName (){console.log(4)};//[2]
function getName () {console.log(4)}; //[4]
var getName;//[1]
getName = function () {console.log(3)}; //[1]
getName();//3[3]
//var getName = function (){console.log(3)}; //[5] getName已经声明,var getName;被忽略
getName = function (){console.log(5)};//[5]
getName() //依旧是3 [6]
==>
同名的变量名只申明一次,
变量声明和函数申明都会前提,但是函数申明比变量申明还要提前
声明提升,函数声明提升优先级高于变量声明,所以你这俩例子都是先走的函数声明,再走的表达式
因为function声明的优先级比var声明的优先级高
声明函数会进行提升,函数表达式却不会.