var和function谁先优先执行_变量var声明和函数function声明优先级
變量聲明優(yōu)先級(jí)
使用var關(guān)鍵字和function關(guān)鍵字聲明的變量,會(huì)被JS的解釋器優(yōu)先解析執(zhí)行,具有優(yōu)先級(jí)
使用var關(guān)鍵字聲明變量
1. 看代碼說(shuō)話
// 在script中直接打印輸出變量a
console.log(a); // Uncaught ReferenceError: a is not defined
2. 看代碼說(shuō)話
console.log(a); // 此處輸出 undefined
var a = 20; // 賦值操作
console.log(a); // 此處輸出 20
PS:如果兩道問(wèn)題都OK,請(qǐng)下一頁(yè)!答錯(cuò)的小伙伴請(qǐng)看開(kāi)眼!
// 當(dāng)程序來(lái)執(zhí)行時(shí),首先var關(guān)鍵字聲明變量?jī)?yōu)先執(zhí)行,進(jìn)行變量聲明,卻沒(méi)有進(jìn)行賦值
console.log(a); // 變量a已經(jīng)聲明,但是沒(méi)有賦值
var a = 20; // 此處變量a已經(jīng)進(jìn)行賦值操作了
console.log(a); // 20
使用function關(guān)鍵字聲明函數(shù)
function 關(guān)鍵字聲明的函數(shù)會(huì)被優(yōu)先執(zhí)行
1. 看代碼說(shuō)話
// 輸出變量
var test = 10;
// 定義函數(shù)
function test () {
console.log('木木噠..')
}
// 調(diào)用函數(shù)
test();
// 以上代碼在執(zhí)行時(shí)會(huì)發(fā)生情況?
// 頁(yè)面顯示錯(cuò)誤, test is not a function
PS: 小伙伴們,來(lái)開(kāi)眼!
以上代碼執(zhí)行過(guò)程:
1. 執(zhí)行var test變量的聲明
2. function關(guān)鍵字聲明的函數(shù)生效,此刻test是一個(gè)function
3. 順序執(zhí)行程序,對(duì)test進(jìn)行賦值 test = 10, 類型變?yōu)?number
4. 當(dāng)調(diào)用test函數(shù)時(shí),此刻test已經(jīng)是number類型了,所以發(fā)生錯(cuò)誤
總結(jié)
以上是生活随笔為你收集整理的var和function谁先优先执行_变量var声明和函数function声明优先级的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pycharm导入模块不智能显示_Pyc
- 下一篇: 水电图wp表示什么_装修水电工入门基础知