變數提公升 函式提公升

2021-09-24 06:41:41 字數 1632 閱讀 4045

函式表示式 var fn=function fn(){}

函式宣告方式 function fn(){}

我們需要重點注意的是,只有函式宣告形式才能被提公升。

變數賦值並沒有被提公升,只是宣告被提公升了。

但是,函式的宣告有點不一樣,函式體也會一同被提公升。

複製**

/*

* @author: laifeipeng

* @date: 2019-02-27 09:55:48

* @last modified by: laifeipeng

* @last modified time: 2019-02-27 12:49:51

*/// 函式的宣告比變數的宣告的優先順序要高

function

test1()

var a;

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

console.log(b); //列印出b的函式體

var b;

function

b()

console.log(b); //列印出b的函式體

// !注意看,一旦變數被賦值後,將會輸出變數

console.log(c); //列印出c的函式體

var c = 12

function

c()

console.log(c); //12

console.log(d); //列印出d的函式體

function

d()

var d = 12

console.log(d); //12

}test1();

console.log('----------分割線---------')

function

test2()

var a;

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

console.log(b); //undefined

var b;

var b = function

b()

console.log(b); //列印出b的函式體

// !注意看,一旦變數被賦值後,將會輸出變數

console.log(c); //undefined

var c = 12

var c = function

c()

console.log(c); //列印出c的函式體

console.log(d);

var d = function

d() //undefined

var d = 12

console.log(d); //12

}test2();

複製**

關於js變數提公升的一些坑

變數提公升,函式提公升

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

變數提公升 函式提公升

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

變數提公升, 函式提公升之我見

console.log a undefined var a 1 上先輸出,後宣告,應該輸出 a is not defined 但實際上輸出 a 時,a 沒有報 a is not defined 說明 a 已經被宣告,未被賦值 這種宣告位置被提公升到作用域最高的現象,就是所謂的變數提公升 同時還告訴我...