函数里面才有作用域
var color = "yellow";
function getColor() {
var anotherColor = red";
function swapColor() {
var tmpColor = color;
color = anotherColor;
anotherColor = tmpColor;
}
swapColor();
}
getColor();
console.log(color);
运行方式: 首页tempColor = color,没有找到这个变量,往外面的作用域去找,tempColor="yellow",接着color = anotherColor,往外的作用域找变量,得到color= "red",anotherColor ="yellow"
预解析

console.log(fn2);
function fn2() {
console.log('我是函数');
}
var fn2 = '我是变量';
console.log(fn2);
输出结果:变量和函数先提升,输出functio fn2() { },再输出 "我是变量"。
var声明的全局变量
fn3();
console.log(num1);
console.log(num2);
console.log(num3);
function fn3(){
var num1 = num2 = num3 = 100;
console.log(num1);
console.log(num2);
console.log(num3);
}
注意:因为num2和num3没有用var声明,所以是全局变量 输出结果:100,100,100,报错,100,100