1.
/**
* 函数内作用域 (局部作用域) 函数内部得变量函数外部是无法获取 不适用var声明得变量也是全局
* 函数外得作用域 (全局作用域) 函数内部可以获取函数外部得变量
*/
var a = 1;
function foo() {
console.log(a, '第二次'); // undeifned
var a = 2;
console.log(a, '第三次'); //2
a = 3;
console.log(a, '第四次') //3
}
console.log(a, '第一次'); //第一行代码 1
foo();
console.log(a, '第五次'); //1
2.
var a = 10;
function foo() {
console.log(a); //undefined
var a = 100;
console.log(a); //100
function fn() {
console.log(a); //undefined
var a = 200;
console.log(a); //200
}
fn()
}
foo()
3.
var v1 = 10;
v2 = 20;
function foo() {
var a = 30;
b = 30;
console.log(v1, v2);
}
foo();
console.log(a, b)
3的代码会报错 因为a实在foo函数内定义的局部变量,外部没有定义,所以汇报a is not defined