深入理解js的變數提公升和函式提公升

2021-08-11 06:12:51 字數 1161 閱讀 6095

一、變數提公升

在es6中提出了塊級作用域,用var宣告的變數,起作用域應為對整個塊都起作用,所以會跑偏;而且使用var宣告的變數會出現「變數提公升」現象。

那麼什麼是變數提公升呢?用以下**直觀感受一下:

其執行順序應為:

二、函式提公升

js中建立函式有兩種方式:函式宣告式和函式字面量式。只有函式宣告才存在函式提公升!如:

1

2

3

4

console.log(f1);// function f1() {}

console.log(f2);// undefined

functionf1() {}

varf2 =function() {}

只所以會有以上的列印結果,是由於js中的函式提公升導致**實際上是按照以下來執行的:

1

2

3

functionf1() {}// 函式提公升,整個**塊提公升到檔案的最開始

console.log(f1);

console.log(f2);

varf2 =function() {}

例項:function text(n)

console.log(n)

}text(1)

執行順序應為:

var n

function n()

console.log(n);

n=2;

console.log(n)

深入理解JS中的函式宣告提公升和變數宣告提公升

簡介 本文先從函式的宣告方式說起,介紹不同函式的宣告方式在函式宣告提公升上的不同。然後根據具體的例子比較變數宣告提公升和函式宣告提公升的不同。第一部分 函式的宣告方式 函式宣告有三種方式 函式宣告,函式表示式 又稱函式字面量宣告 函式物件的宣告 使用率很低 方式一 函式宣告 function 函式名...

JS 變數提公升 函式名提公升 變數和函式結合的提公升

一 變數的提公升 1 使用var 關鍵字宣告的變數會提公升到 的頭部 變數提公升 例子 console.log num undefined var num 100 console.log num 100 var x console.log x undefined 2 不使用var關鍵字宣告的變數是全...

js箭頭函式深入理解

let f a let f a let f a return alet f a a f 2 2let f 如果沒括號,花括號內會被視作待執行語句let callback callback callback function ok,普通函式 callback callback syntaxerror ...