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,在引用的時候也使用這個值,知道在其面後進行賦值,在使用時候即為所贖...