變數或函式 提公升

2022-10-04 02:45:12 字數 798 閱讀 5044

變數提公升

console.log(fn) //

輸出:undefined

var fn = 12

變數提公升,是把變數提公升提到函式上邊,注意:變數提公升 只提公升變數的宣告,不會把賦值也提公升上來

所以,正兒八經的情況是這樣的...

var fn;  //

先宣告console.log(fn)

fn = 12

//執行時才賦值

函式提公升(兩種方式:1.函式表示式2.函式宣告式)

1.函式表示式提公升

console.log(fn()) //

輸出:typeerror: fn is not a function

var fn =function()

函式表示式方式提公升和普通變數提公升一樣,只宣告不賦值

2.函式宣告式提公升

console.log(fn()) //

輸出:1

//函式宣告

function fn()

函式宣告方式提公升,會提公升到作用域最前邊,並且將宣告內容一起提公升到最上邊

總結:1. 所有的宣告都會提公升到作用域的最頂上去

2. 同乙個變數只會宣告一次,其他的會被忽略掉或者覆蓋掉

3. 函式宣告的優先順序高於變數宣告的優先順序,並且函式宣告和函式定義的部分一起被提公升

變數提公升 函式提公升

函式表示式 var fn function fn 函式宣告方式 function fn 我們需要重點注意的是,只有函式宣告形式才能被提公升。變數賦值並沒有被提公升,只是宣告被提公升了。但是,函式的宣告有點不一樣,函式體也會一同被提公升。複製 author laifeipeng date 2019 0...

變數提公升,函式提公升

1,變數提公升及函式提公升 2,函式作用域下的變數提公升和函式提公升 思考 變數提公升和函式提公升是怎麼樣產生的?1 在js中js引擎會優先解析var變數和function定義!在預解析完成後從上到下逐步進行!2 解析var變數時,會把值儲存在 執行環境 中,而不會去賦值,值是儲存作用!例如 ale...

變數提公升 函式提公升

如果熟悉js 執行的過程,這個問題不難理解 一 變數提公升 es5中沒有塊作用域,有全域性作用域 區域性作用域 函式 等 不宣告定義變數 console.log name 報錯,變數沒有定義 變數提公升 console.log info undefined,不報錯 var info hello fu...