JS 變數提升, 函式提升
阿新 • • 發佈:2022-02-23
console.log(a)
var a;
console.log(a)
a = 10
console.log(a)
function a() {
let c = 1;
}
console.log(a)
//相當於:
function a() {
let c = 1;
}
var a;
console.log(a)
console.log(a)
a = 10
console.log(a)
console.log(a)
1) 變數宣告存在提升,函式宣告存在提升,但函式宣告比變數宣告更置頂
2) 宣告過的變數不會重複宣告, 但賦值會覆蓋之前的宣告
例題1 console.log(a) //結果:報錯 a is not defined 例題2 console.log(a) var a; //結果:undefined 例題3 console.log(a) let a; //結果:報錯 a is not defined //let 沒有變數提升 例題4 var a=1 function fn(){ console.log(a) var a=2; } fn() //結果:undefined // var a=1 // function fn(){ // var a // console.log(a) // a=2; // } // fn() 例題5 var a=1 function fn(a){ console.log(a) var a=2; } fn(5) //結果:5 // var a=1 // function fn(a){ // var a // a=5 // console.log(a) // a=2; // } // fn(5) 例題6 var f = function () { console.log(1); } function f() { console.log(2); } f() //結果:1 // function f() { // console.log(2); // } // var f = function () { console.log(1); } // f()