函数内部变量提升和参数

function demo(a, b) {
    console.log(a)
    function a(){}
}

demo(1,2)
这块打印出的是函数。
虽然函数的变量提升会优先与变量,实参的赋值难道不是在函数内部执行之前吗?也就是说执行顺序

function demo(a, b) {
    function a(){}(函数声明)
    a;   (参数声明)
    a = 1(参数赋值)
    console.log(a)
}

不知道我的理解在哪里出现了问题,希望各位可以指正,感谢!

因为你么有吃透语法
js虽然是解释性的语言,它也是要先分析语法,再执行的,不能无脑执行呀
否则你的函数只要定义在调用之后,就都会认不出来,你觉得那样对吗

入参传参并没有声明这个说法,你可以这么理解,参数在最上面,不是在函数内执行。

function demo(a=1, b) {
    function a(){} //(函数声明)
    console.log(a)
}