變數和函式的提公升

2021-09-28 22:58:57 字數 1112 閱讀 2272

變數的提公升:所有使用var宣告的變數都會提公升:提前到作用域一開始的位置被宣告,該賦值的位置再賦值

console.log(a);

var a =10;

**解析、以上**等同於一下**

var a ;

console.log(a);

a = 10 ;

//所以輸出 undefined, 表示a定義了,但是沒有賦值

例2:function fn ()

fn();

**解析

function fn ()

fn();

函式提公升  整個提公升

fn();

console.log(fn);

function fn ()

fn();

//**解析 等同於

function fn ()

fn(); //輸出 hello

console.log(fn); //輸出 f fn()

fn(); //輸出 hello

//例:

賦值式函式,只提公升變數,不提公升函式,因為函式沒有名字,無法提公升

fn()

console.log(fn);

var fn = function()

fn();

**解析

var fn;

fn(); //輸出 fn is not a function; 函式沒有提公升

console.log(fn); //輸出 undefined 定義變數了,但是還沒有賦值

fn = function()

fn(); // world

//例:

console.log(a);

var a = 10;

function a (){};

console.log(a);

//**解析 var宣告的變數提公升的更高,更高意味著有可能會覆蓋

var a;

function a (){};

console.log(a); //輸出 f a(){}

a = 10;

console.log(a); //輸出10

變數提公升和函式提公升

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...

變數提公升和函式提公升的意義

function test test 結果 成功function test test 結果 typeerror foo is not a function解析器在向執行環境中夾在資料時,對函式宣告和函式表示式並非一視同仁。解析器會率先讀取函式宣告,並使其在執行任何 之前可用 可以訪問 說白了就是,用...