js函式預解析

2021-10-25 11:26:12 字數 685 閱讀 3787

js直譯器在執行js**時,分為兩步:

預解析(var和function宣告的變數和函式,將變數或函式提公升至當前作用域的最前面)

2.逐行執行**

// 例1:

function fun()

fun() // 輸出: undefined

// 原因: 使用var 宣告的num 進行了函式內作用域提公升,預解析後,**如下

function fun()

// 例2:

foo();

console.log(z);

console.log(y);

console.log(x);

function foo()

// 輸出: 9 9 9 9 9 報錯

// 原因: 使用function宣告的函式提公升至當前作用域最前面,foo函式內部,只有x是函式內的區域性作用域,y/z並沒有使用var關鍵字宣告,所有y/z屬於全域性作用域變數

// 預解析後,**如下:

function foo()

foo();

console.log(z); // 9

console.log(y); // 9

console.log(x); // 報錯

js 函式 作用域 預解析

一 函式 定義 可以重複呼叫執行的 塊 一 函式的宣告和呼叫 1.宣告函式 1 命名函式 語法 function 函式名 2 函式表示式來宣告函式 匿名函式 語法 var 變數名 function eg var fun function fun 使用變數名來呼叫函式 2.呼叫函式 函式名 二 函式的...

js基礎 預解析

預解析 1.js引擎執行js分為兩步 預解析和 執行 1 預解析 js引擎會把js裡面所有的var 還有function 提公升到當前作用域的最前面 2 執行 按照 書寫的順序從上往下執行 2.預解析分為變數預解析 變數提公升 和函式預解析 函式提公升 1 變數提公升 就是把所有的變數宣告提公升到當...

JS引擎執行 js 預解析

2 案例 我們js引擎執行js分為兩步 預解析 執行。預解析js引擎會把js裡面所有的var還有function提公升到當前作用於的最前面。變數提公升 就是把所有的變數宣告提公升到當前作用域的最前面,不提公升賦值操作。函式提公升 就是把所有的函式宣告提公升到當前作用域的最前面,不呼叫函式。按照 書寫...