JavaScript的预解析

对于 J S JS JS代码, J S JS JS解释器会先进行预解析,然后再执行代码。

1.预解析会将所有 v a r var var变量声明提升到作用域的最前面,(没有赋值操作)

2.预解析会将所有 v a r var var函数声明提升到作用域的最前面,(没有调用函数操作)

/*  fun();
var fun = function () {
console.log('harris');
}
这样会报错.
预解析后会变成:
var fun;
fun();
fun=function(){
console.log('harris');
}
*/
f();
function f() {

console.log('harris');
}
//这样会正常执行

f();
function f() {
var a = b = c = 10; //这里 b,c是全局变量。
console.log(a);
console.log(b);
console.log(c);
}
console.log(c);
console.log(b);
console.log(a); //这里会报错.