JavaScript基础01

var a = 10;
function a() {
	alert(a);
}
function b() {
	var a = 20;
	a();
}
b();

JS没有块级作用域(可以闭包实现),只有函数作用域,函数可以访问外部的变量,函数里面的变量外面找不到。

在javascript中代码执行顺序,函数跟变量是预先解释(置顶解析),所以我们直接看第9行代码;此时首先到函数b(),此时函数内部有声明局部变量a,然后执行函数a();这时,函数a()弹出a的值,然而此时函数内部是没有a变量的定义,所以访问全局变量a,结果是弹出10;


成长就是不断否定自己
原文地址:https://www.cnblogs.com/jlienzen/p/4192498.html