函式提公升和變數提公升,以及他們的優先順序

2021-09-26 08:08:40 字數 1325 閱讀 6178

1. 變數提公升即將變數宣告提公升到它所在作用域的最開始的部分。

(1) 建立函式有兩種形式,一種是函式宣告,另外一種是函式字面量,只有函式宣告才有變數提公升

console.log(a)  // f a() 

console.log(b) //undefined

function a()

var b = function()

相當於

var a = 'function'

var b

console.log(a)

console.log(b)

(2)變數提公升

console.log(c);   //undefined

var c = "第一次沒列印出來,第二次才列印";

console.log(c); //第一次沒列印出來,第二次才列印

function fn()

fn();

其實,就相當於

var c ;

console.log(c)

c = " ***x "

console.log(c)

二、函式提公升與變數提公升的優先順序 

console.log(a);    // f a() 

console.log(a()); // undefined

var a = 3;

function a()

console.log(a) //3

a = 6;

console.log(a()); //a is not a function;

原理 :

var a = funtion () 

var a;

console.log(a); // f a()

console.log(a()); // undefined

a = 3;

console.log(a) //3

a = 6;

console.log(a()); //a() is not a function;

由此可見函式提公升要比變數提公升的優先順序要高一些,且不會被變數宣告覆蓋,但是會被變數賦值之後覆蓋。

變數提公升和函式提公升

1.變數宣告提公升 通過var 定義 宣告 的變數,在定義語句之前就可以訪問到。值 undefined console.log a undefined var a 23 console.log a 23上面 等價於 var a 預編譯,將變數宣告提公升至當前作用域的頂端,初始值為undefined ...

變數提公升和函式提公升

首先js引擎在讀取js 時會進行兩個步驟,第乙個步驟是解釋,第二個步驟是執行。所謂解釋就是會先通篇掃瞄所有的js 然後把所有宣告提公升到頂端,第二步是執行,執行就是操作一類的。例子1 console.log a 輸出結果 undefined var a 10 script 以上 輸出 undefin...

javascript變數提公升和函式提公升

variable hoisting變數提公升是js比較有特點的地方,它允許你先使用變數,在其後面再進行變數宣告,不會丟擲 uncaught referenceerror異常。雖然變數被提公升到前面,但是它的預設值則是undefind,在引用的時候也使用這個值,知道在其面後進行賦值,在使用時候即為所贖...