预解释是一种毫无节操的机制

//首先预解析var num;
//所以'num' in window=true
//就不进行赋值操作了
if(!('num' in window)){
var num=12;
}
console.log(num);//undefined

console.log(fn);//undefined
var fn=function(){
console.log('ok');
}
fn();//ok

原文地址:https://www.cnblogs.com/qiqi105/p/8250253.html