var foo=1;
function fun(){
if(!foo){
var foo=10;
}
console.log(foo);
}
fun();
在预编译预编译过程中,会看if中的变量声明的吗?我记得不看的!但是这里看了,所以又犯迷糊了,求大佬告知!!
会看的,预编译时会发生声明提前,var声明的变量在不在if里面都会被提到if前面。除非你用let声明就不会提前
了解,了解
如果不看if:就会找到全局中的foo,foo=1;条件不成立,最终输出1
如果看if:foo为undefined ,条件成立,最终输出10
答案输出10;可是我记得预编译不看if中的