console.log(a); // undefined
var a;
var a = '123';
a(); // a is not a function
var a = function() {
console.log('aaa');
}
var a = function() {
console.log('a1a1a1');
}
// 同名变量忽略原则:变量只提升声明,不提升值。默认为undefined
b(); // b1b1b
function b() {
console.log('bbb');
}
function b() {
console.log('b1b1b');
}
// 同名函数覆盖原则:同名的函数,先声明的会被覆盖
c(); // function c
var c = function() {
console.log('cccc');
}
function c() {
console.log('function c');
}
c(); // cccc
/* 同名的函数和变量,函数声明会提升到变量声明之前
等同于
function c() {
xxx
}
var c 被忽略
c();
c = function() {
xxx
}
c();
*/