1、js引擎在执行js代码时,会先解析js代码然后再去执行js代码,在解析js代码时会将var声明的变量和function声明的函数提到当前作用域代码的顶部。
2、当var声明的变量名与function声明的函数名一样的时候,函数优先级更高
(1)案例一
console.log(f)
var f = 123;
function f(){console.log(456)}
解析过程:
var f;
function f(){console.log(456)} // 函数整体提升
console.log(f) // function f(){console.log(456)}
f = 123;
(2)案例二
console.log(f)
function f(){console.log(456)}
var f = 123;
解析过程:
function f(){console.log(456)} // 函数整体提升
var f;
console.log(f) // function f(){console.log(456)}
f = 123;
来源:https://www.cnblogs.com/cuishuangshuang/p/12632030.html