關於js作用域變數和函式宣告提公升的總結

2021-08-21 19:05:58 字數 466 閱讀 8980

var a = 1;

function a()

console.log(a); // 1

a(); // 報錯

var a;

function a()

console.log(a); // 列印函式體

a(); // 2

一:

預解析時,函式宣告建立的函式整體會提公升到所在執行環境【作用域】的頂部,

函式表示式建立的函式,僅僅提公升變數名到所在執行環境【作用域】的頂部。

二:當函式宣告和變數宣告同時存在時,函式宣告的優先順序更高;

當變數宣告但沒有賦值並且函式名和變數名一致時,此名稱仍指向函式;

當變數名賦值且函式名和變數名一致,此名稱指向變數,函式被取代,

JS變數宣告跟變數作用域

js的變數宣告存在變數提公升 對js指令碼執行的時候,函式的宣告會被提取到頂端執行。所以 如 add 1,2 function add a,b 是可以執行列印3的。對於變數而言,宣告也會被提前。但是賦值的位置是不變的 如 console.log a var a 12 console.log a 第乙...

js變數宣告作用域問題

1.先來看兩個題 1 var a 1 2foo1 3function foo1 67 8foo2 9var a 1 10function foo2 首先這兩題中應該要注意的是函式宣告的提公升,也就是function foo1 會自動被提公升到頂部,所以foo1 的 呼叫是可以的。第乙個輸出1是毫無疑...

python 變數宣告和作用域

a 3 1.建立name a 2.建立object 3 3.將name 關聯到3 這個object上 name在建立時必須關聯到乙個object name可以在建立以後指向任何乙個object 包括不同型別 全域性變數和區域性變數 1.globals 返回當前模組的全域性變數,locals返回當前所...