ES5函数作用域
函数作用域: 在 JavaScript函数中声明的变量,会成为函数的局部变量。在函数外部不能访问。
全局作用域: 函数之外声明的变量,会成为全局变量。在函数内部可以访问。当函数嵌套的时候,内部函数与外部函数的这个变量就组成了闭包。
作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突
// ES5中没有块级作用域
{
var a = 10
}
console.log(a); // 10
//全局作用域:global/window/本文件内
var v1 = 10; //全局作用域
v2 = 20; // 所有末定义直接赋值的变量自动声明为拥有全局作用域
function foo() {
//函数作用域、局部作用域
var a = 3;
console.log(v1, v2);
console.log(this);
}
foo()
console.log(a); // a is not defined
案例:
var a = 10;
function foo(