作用域这一块的讲解感觉缺失了函数预编译这一模块

来源:6-5 作用域相关的面试题 - part1

1007123589qaz

2020-10-30

我记得之前面试的时候函数预编译还是必考的
函数预编译:
1、形参赋值
2、变量提升
3、代码自上而下执行
4、当前栈内存(私有作用域)销毁或者不销毁

之前遇到过经典的作用域面试题如下:

var num=1,
    obj={
        num:2,
        fn:(function(num){

            this.num*=2;
            num+=2;
            return function(){
                this.num*=3;
                num++;
                console.log(num)
            }
        })(num)
    }
    var fn=obj.fn;
    fn();
    obj.fn();
    console.log(num,obj.num)
写回答

1回答

双越

2020-10-30

这就涉及到一部分编译原理的知识了。不过确实应该了解一下。

另外,变量提升在 es6 已经没有了,语法检查就不会通过。

0
0

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程