JS-作用域

变量提升和声明函数提升

变量提升

var x;
x=10;
alert(x);	//输出10
//变量提升
x=10;
var x;
alert(x);	//输出10

以上的两段代码都可正常输出。第二段的var x;在第二行,但在第一行就使用了x,实际上编译器在编译时会把变量声明函数声明提前,称为变量提升函数声明提升

声明函数提升

//函数声明提升
functionName();	//可以在函数声明前就调用
function functionName(){
	//your code
}

加var和不加var的区别

function t1(){
	//在赋值时,先检测当前作用域有没有a,如果有则赋值;否则在作用域链顶级(例如window)声明变量并赋值
	var a=1; //在当前作用域声明的变量(局部变量)
	b=1; //在window下声明的变量(全局变量)
}

猜你喜欢

转载自www.cnblogs.com/yangjiale/p/11261382.html