所以是 函数内对a的声明覆盖了形参a的值, 然后函数a又覆盖了a的undefined, 进行第一个输出后a被赋值666, 之后输出第二和第三,最后输出函数b 吗?(这样理解对不对
差不多。不能说是覆盖,就是这个{}内包括根中的所有var/function都会被执行前提升到文件头部先定义,然后再按顺序