最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Javascript中變量函數(shù)申明優(yōu)先級

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:24:38
文檔

Javascript中變量函數(shù)申明優(yōu)先級

Javascript中變量函數(shù)申明優(yōu)先級:案例一console.log(a); //輸出function a(){} function a() {}; var a=3;案例二function a() {}; var a=3; console.log(a);//輸出3為什么兩者輸出不一樣呢?解析:針對案例一其執(zhí)行流程可以細(xì)化為1.首先會申請一個空間,開始申明函數(shù)a,然后在執(zhí)行申明變量
推薦度:
導(dǎo)讀Javascript中變量函數(shù)申明優(yōu)先級:案例一console.log(a); //輸出function a(){} function a() {}; var a=3;案例二function a() {}; var a=3; console.log(a);//輸出3為什么兩者輸出不一樣呢?解析:針對案例一其執(zhí)行流程可以細(xì)化為1.首先會申請一個空間,開始申明函數(shù)a,然后在執(zhí)行申明變量
案例一

console.log(a); //
輸出function a(){} function a() {}; var a=3;

案例二

function a() {};
var a=3;
console.log(a);//
輸出3

為什么兩者輸出不一樣呢?

解析:

針對案例一

其執(zhí)行流程可以細(xì)化為

1.首先會申請一個空間,開始申明函數(shù)a,然后在執(zhí)行申明變量a,發(fā)現(xiàn)已經(jīng)有a的聲明,于是不進(jìn)行申明

2.然后,就執(zhí)行console.log(a);即輸出函數(shù)a

3.最后執(zhí)行在執(zhí)行賦值操作,將a=3,這時候函數(shù)a就被轉(zhuǎn)為變量類型,并賦值為3。為了驗(yàn)證,可以將程序改為如下

a();
function a() {
	console.log(5);
};
var a=3;
a();

可以發(fā)現(xiàn)程序執(zhí)行結(jié)果如下:


因?yàn)樵谫x值之前,a仍然是函數(shù),當(dāng)執(zhí)行賦值語句后,a變?yōu)?了,執(zhí)行a()就會報錯。

針對案例二

同理可以知,首先申明了函數(shù)a,然后在執(zhí)行申明變量a,發(fā)現(xiàn)已經(jīng)有a的聲明,于是不進(jìn)行申明,接下來,執(zhí)行了賦值語句,將函數(shù)a轉(zhuǎn)為變量。最后輸出變量a的值

總結(jié):

1)函數(shù)被申明的優(yōu)先級高于變量

2)被聲明過的變量名或是函數(shù)名不會被重復(fù)申明

3)變量和賦值語句一起書寫,在js引擎解析時,會將其拆成聲明和賦值2部分,聲明置頂,賦值保留在原來位置

補(bǔ)充

1.下面代碼執(zhí)行結(jié)果為

var x=0;
f();
console.log(x);
var f=function(){
	x=1;
}
f();
console.log(x);
function f(){
	x=2;
}
f();
console.log(x);


答案:2 1 1

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Javascript中變量函數(shù)申明優(yōu)先級

Javascript中變量函數(shù)申明優(yōu)先級:案例一console.log(a); //輸出function a(){} function a() {}; var a=3;案例二function a() {}; var a=3; console.log(a);//輸出3為什么兩者輸出不一樣呢?解析:針對案例一其執(zhí)行流程可以細(xì)化為1.首先會申請一個空間,開始申明函數(shù)a,然后在執(zhí)行申明變量
推薦度:
標(biāo)簽: 聲明 函數(shù) javascript
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top