日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

變量提升,函數(shù)提升及其優(yōu)先級(jí)關(guān)系

作者:請(qǐng)叫我大幸運(yùn) 更新時(shí)間: 2022-01-04 編程語言

1、變量提升

當(dāng)用var聲明變量的時(shí)候,存在將變量聲明提升到頂部的情況

console.log(a);
var a = '123';
console.log(a);
/* 打印 
undefined 
123
*/

上述代碼等同于

var a;
console.log(a);
a = '123';
console.log(a);

2、函數(shù)提升

函數(shù)聲明存在函數(shù)提升,如 function f() { ... }
函數(shù)表達(dá)式不存在函數(shù)提升,其中包括命名函數(shù)表達(dá)式和匿名函數(shù)表達(dá)式 如 var f = function f() { ... } var f = function () { ... }
注:通常函數(shù)表達(dá)式定義函數(shù),用匿名即可
具體的函數(shù)提升分析如下:

console.log(f);
console.log(f());
function f() {
	console.log('123');
}
/* 打印
1、f f() {console.log('123');}
2、123
*/

上述代碼等同于

function f() {
	console.log('123');
}
console.log(f);
console.log(f());

3、優(yōu)先級(jí)關(guān)系

當(dāng)函數(shù)被同名變量聲明覆蓋時(shí),優(yōu)先考慮函數(shù)提升。

console.log(f);
console.log(f());
var f = '123';
function f() {
	console.log('456');
}
var f = function () {
	console.log('789');
}
console.log(f);
console.log(f())
var f = '10'
console.log(f);
console.log(f())
/* 打印
1、f f(){console.log('456');}
2、456
3、f (){console.log('789');}
4、789
5、10
6、Uncaught TypeError: f is not a function
*/

上述代碼等同于

function f() {
	console.log('456');
}
var f;
console.log(f);
console.log(f());
f = '123';
f = function () {
	console.log('789');
}
console.log(f);
console.log(f())
f = '10'
console.log(f);
console.log(f())

原文鏈接:https://blog.csdn.net/weixin_43275787/article/details/122111342

欄目分類
最近更新