js进阶(1.2)词法作用域

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();  //

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容