1. 下面两个情况分别输出什么?



function a(b, c) {
function b() {}
alert(b); // function b() {}
}
a(1, 2);
function a(b, c) {
var b;
alert(b); // 1
}
a(1, 2);


2. 不太理解为啥会这样......按本菜鸡的理解说,第二题应该是 undefined

3. 在查阅资料时,这个题目没解决,但是学到了个东西,函数提升 优先级 高于 变量声明提升,函数与变量重名时,若变量只是声明,则函数不会被覆盖,但是函数会被赋值变量覆盖。