直接来看代码
function demo(a, b) {
console.log(a)
function a(){}
}
一直以来我都以为函数内部参数也是需要在函数内部有变量声明,赋值这个过程的,所以上面的代码我会理解为:
function demo(a, b) {
function a(){}(函数声明)
var a; (参数声明)
a = 1(参数赋值)
console.log(a)
}
但是其实输出的结果确实一个函数,问了几个大佬才知道参数的声明赋值操作其实并不会在函数内部进行,也就是说不会影响到内部操作。那其实代码也就是:
function demo(a, b) {
function a(){}(函数声明)
console.log(a)
}