JavaScript代碼是由瀏覽器中的Javascript決議器來執行的,
一、JavaScript決議器在運行JavaScript代碼的時候分兩步:預決議 和 代碼執行
- 預決議 js引擎 會把js 里面所有的 var 還有 function 提升到當前作用域的最前面
- 代碼執行: 按照代碼書寫的順序從上往下執行
二、預決議分為: 變數預決議(變數提升)和 函式預決議(函式提升)
1.變數提升: 即把所有的變數宣告提升到當前的作用域最前面 不提升賦值操作

2.函式提升:即把所有的函式宣告提升到當前作用域的最前面 不呼叫函式

該情況① ↑,函式運算式 呼叫必須寫在函式運算式的下面才不報錯
情況②↓
3.變數與函式的一起提升
例1.↓
var num=10;
fun();
function fun(){
console.log(num);
var num =20;
}

例2.↓
var num =10;
function fn(){
console.log(num);
var num=20;
console.log(num);
}
fn();

例3.↓
var a =18;
f1();
function f1(){
var b =9;
console.log(a);
console.log(b);
var a ='123';
}

例4. ↓
f1();
console.log(c);
console.log(b);
console.log(a);
function f1() {
var a = b = c = 9;
console.log(a);
console.log(b);
console.log(c);
}

詳解 全域變數 ←
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/294347.html
標籤:其他
