ES5作用域靠function分割。没有块级作用域。
全局作用域和局部作用域同名,使用就近原则(优先用的是局部作用域的),该预解析就解析。
var a = 10;
function f1(){
var b=2*a;
var a = 20;
var c = a+1;
console.log(b);
console.log(c);
//解析过程
var b;
var a;
var c;
b = 2*a;
a = 20;
c = a+1;
console.log(b);//NaN
console.log(c);//21
}
f1();