目錄:
- 變數宣告提升
- 函式宣告提升
- 函式優先原則
- 相同型別宣告,後者覆蓋前者
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
複製程式碼