fn1 调用的时候不会立即执行
而是会生成一个抽象语法树
校验里面的每句话 如果有错误就停止执行
没错再从头开始执行
一个函数能访问那些变量 在做词法分析的时候就确定了
词法树分析的是语义
只能确认a就是这个函数内部的a
不能确定的是“值”
var global = 1;
function fn1(param1){
var local1 = 'local1';
var local2 = 'local2';
function fn2(param2){
var local2 = 'fn2 local2';
console.log(local1);
console.log(local2);
}
function fn3(){
var local2 = 'fn3 local2';
fn2(local2);
}
}
经典面试题
var a = 1;
function b(){
console.log(a) // a一定是1吗?
}
你在看看
var a =1;
function b(){
console.log(a);
}
...若干代码后 突然一句
a = 2;
b(); //
网友评论