腾讯js面试题1

来源:互联网 发布:linux cp 合并文件夹 编辑:程序博客网 时间:2024/06/07 01:50

该题难度系数为:★★★

考查技术点:1). 作用域与作用域链  2). 变量查找

    var x = 10;          function fn() {              console.log(x);          }          function show(f) {              var x = 20;              f();          }          show(fn);   

运行结果为:


接下来我们分析下思路:

首先我们先来了解下三个概念,

作用域:

       一块特定的代码区域,全局作用域和函数作用域,隔离变量,避免命名冲突

作用域链:

        由内向外的多个嵌套的作用域形成的链条

查找变量:

       从当前作用域开始,沿着作用域链查找(注意不是原型链查找),如果找不到,就报错

调用show(fn),就是把fn函数当作函数参数传进去,即show函数变成了,

function show(f) {
        var x = 20;
        fn();
    }

具体分下如图所示:


原创粉丝点击