前端进阶课程之声明提升

167 阅读1分钟

目录:

  • 变量声明提升
  • 函数声明提升
  • 函数优先原则
  • 相同类型声明,后者覆盖前者

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