目录:
- 变量声明提升
- 函数声明提升
- 函数优先原则
- 相同类型声明,后者覆盖前者
1: 变量声明提示
console.log(a); //undefinedvar 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复制代码