var a;
function a() {
}
console.log(a) // ƒ a() {}
function a() {
}
var a;
console.log(a)// ƒ a() {}
var a = 1;
function a() {}
console.log(a); // 1
函数声明会覆盖变量声明
————————————————————————————————
下面看看if/else里的函数声明
var a = 0;
if (true) {
a = 1;
function a() {}
a = 21;
}
console.log(a); // 1
在ES2015环境中,块内的函数声明将作用于该块内
var a = 0;
if (true) {
var a = 1; // Uncaught SyntaxError: Identifier 'a' has already been declared
function a() {}
a = 21;
}
console.log(a);
这样会报错:// Uncaught SyntaxError: Identifier 'a' has already been declared