JavaScript变量提升简要叙述,彻底搞懂JavaScript变量提升

JavaScript的变量提升是一个很有趣的东西,掌握好了会避免很多坑,少写很多bug!
下面就教大家如何快速且彻底弄懂JavaScript的变量提升!

function test1() {
	function a() {};
	var a;
	log(a);    //这里打印出a的函数体
};
texs1();

function test2() {
	var b;
	function b() {};
	log(b);     //这里打印出b的函数体 
};
test2();

function test3() {
	// !注意看,一旦变量被赋值后,将会输出变量
	var c = 12;
	function c() {};
	log(c);      //打印出12
};
test3();

function test4() {
	function d() {};
	var d = 12;
	log(d);       //打印出12
};
test4();
总结:函数的声明比变量的声明优先级高,test1()和test2()函数里面同时声明一个变量一个函数无论顺序如何,最后都是函数覆盖变量,也就是说这里函数最后总是会覆盖变量的,test3()和test4()这两个函数里面一个变量赋值一个函数声明,变量赋值过程其实是有两步的,先声明后赋值,所以这里要注意了,变量赋值过程是在声明过程后面的,所以这里最后总是输出变量的值!

另外注意:只有函数声明形式才能被提升。 变量赋值并没有被提升,只是声明被提升了。

函数表达式   var fn=function fn(){}
函数声明方式 function fn(){}

如果你还有不懂的话,就加我微信(17771806167)交流吧,或下方扫码!有时间会免费给大家解答的,也可以加QQ群:682783851,跟大家一起沟通问题!

你可能感兴趣的:(JavaScript,使用方法,JavaScript变量提升,JavaScript关键知识点)