目录:
- 变量声明提升
- 函数声明提升
- 函数优先原则
- 相同类型声明,后者覆盖前者
1: 变量声明提示
console.log(a); //undefined
var a = 10;
复制代码
2;函数声明提升
fn1();// 输出1,因为函数1被提升
fn2(); //报错,因为fn2此时只是一个变量,提升以后值为undefined,不是一个函数声明
function fn1 () {
console.log(1);
}
var fn2 = function () {
console.log(2);
}
复制代码
3: 函数优先原则
a();//此时输出1,因为函数优先,函数a会首先被提升
var a = 10;
function a () {
console.log(1);
}
console.log(a); // 10
复制代码
4: 相同类型声明,后者覆盖前者
a();//此时会输出2,后面的声明提升会把前面的覆盖调
function a () {
console.log(1);
}
function a () {
console.log(2);
}
a();//2
复制代码